示例#1
0
        private Thread CONTEST_Thread;                                          //心跳线程


        //连接服务端函数
        private void Connect()
        {
            try
            {
                FreshDate_Timer.Enabled  = true;
                FreshDate_Timer.Interval = 5000;
                FreshDate_Timer.Tick    += FreshDate_Timer_Tick;
                //连接通信
                bool IsConnSuccess = false;
                using (WaitDialogForm dialog = new WaitDialogForm("正在通信,可能需要数秒,请稍后...", "提示"))
                {
                    IsConnSuccess = clientserver.Setup(ConnectConfigTool.serverconfig);
                    if (IsConnSuccess)
                    {
                        IsConnSuccess = clientserver.Start();
                    }
                }
                if (!IsConnSuccess)
                {
                    //this.Text = "AGV调度系统实时显示---连接服务器失败!";
                    return;
                }
                clientserver.RecvSuccess += this.RecvSuccess;
                //向服务端请求所有车辆当前实时信息
                SuperSocketMsg Message = new SuperSocketMsg("", SocketCommand.AllCarsInfo);
                clientserver.SendMessage(Message);
                //向服务端发送心跳
                CONTEST_Thread = new Thread(SendCONTEST);
                CONTEST_Thread.IsBackground = true;
                CONTEST_Thread.Start();
            }
            catch (Exception ex)
            { MsgBox.ShowError(ex.Message); }
        }
示例#2
0
 /// <summary>
 /// 发送消息
 /// </summary>
 /// <param name="msg"></param>
 /// <param name="command"></param>
 public void SendMessage(SuperSocketMsg pack)
 {
     try
     {
         lock (LockObj)
         {
             _clientsocket.Send(pack.ToBuffer());
         }
     }
     catch (Exception ex)
     {
     }
 }
示例#3
0
 /// <summary>
 /// 重新连接调度服务端
 /// </summary>
 private void ReConnect()
 {
     try
     {
         DateTime now      = DateTime.Now;
         TimeSpan timeSpan = now - UpRecTime;
         if (timeSpan.TotalSeconds > 3)
         {
             if (!this.IsHandleCreated)
             {
                 return;
             }
             //this.Invoke((EventHandler)(delegate
             //{
             //    this.Text = "AGV调度系统实时显示---正在重连服务器...";
             //}));
             if (clientserver != null)
             {
                 clientserver.Exit();
                 clientserver = null;
             }
             clientserver              = new TcpClientSever();//客户端通信对象
             clientserver.RecvSuccess += this.RecvSuccess;
             clientserver.Setup(ConnectConfigTool.serverconfig);
             clientserver.Start();
             SuperSocketMsg Message = new SuperSocketMsg("", SocketCommand.AllCarsInfo);
             clientserver.SendMessage(Message);
             //向服务端发送心跳
             if (this.CONTEST_Thread != null)
             {
                 CONTEST_Thread.Abort();
             }
             CONTEST_Thread = new Thread(SendCONTEST);
             CONTEST_Thread.IsBackground = true;
             CONTEST_Thread.Start();
         }
         else
         {
             if (!this.IsHandleCreated)
             {
                 return;
             }
             //this.Invoke((EventHandler)(delegate
             //{
             //    this.Text = "AGV调度系统实时显示";
             //}));
         }
     }
     catch (Exception ex)
     { }
 }
示例#4
0
 //定时发送心跳包
 private void SendCONTEST()
 {
     try
     {
         while (true)
         {
             SuperSocketMsg Message = new SuperSocketMsg("", SocketCommand.CONTEST);
             clientserver.SendMessage(Message);
             Thread.Sleep(1000);
         }
     }
     catch
     { }
 }