Ejemplo n.º 1
0
        /// <summary>
        /// 定时发送心跳包,检测服务器连接状态
        /// </summary>
        internal void TestAndReconnectServer()
        {
            Guid curGuid = appCenter.CurrentGuid;

            while (true)
            {
                Thread.Sleep(5000);
                if (curGuid != appCenter.CurrentGuid)
                {
                    break;
                }
                if (tcpCenter.P2PServerTcp != null)
                {
                    try
                    {
                        byte[] dataAr = new Send_0x0052().PackData();
                        tcpCenter.P2PServerTcp.GetStream().WriteAsync(dataAr, 0, dataAr.Length);
                    }
                    catch (Exception ex)
                    {
                        LogUtils.Warning($"服务器连接已被断开");
                        tcpCenter.P2PServerTcp = null;
                    }
                }
                else
                {
                    ConnectServer();
                }
            }
        }
Ejemplo n.º 2
0
 public void TestAndReconnectServer()
 {
     while (true)
     {
         Thread.Sleep(5000);
         try
         {
             if (Global.P2PServerTcp != null && Global.P2PServerTcp.Connected)
             {
                 Send_0x0052 sendPacket = new Send_0x0052();
                 int         count      = Global.P2PServerTcp.Client.Send(sendPacket.PackData());
             }
             else
             {
                 ConnectServer();
             }
         }
         catch (Exception ex)
         {
             LogUtils.Warning($"【断线重连】错误消息:{Environment.NewLine}{ex.ToString()}");
             try
             {
                 Global.P2PServerTcp.Close();
             }
             catch { }
             Global.P2PServerTcp = null;
             ConnectServer();
         }
     }
 }