示例#1
0
        private void OnConnectedCompleted(object sender, SocketAsyncEventArgs e)
        {
            if (e.SocketError != SocketError.Success)
            {
                return;
            }

            Socket socket = sender as Socket;

            OnLogEvent("服务器连接成功。。。");
            //开启新的接受消息异步操作事件
            var receiveSaea   = new SocketAsyncEventArgs();
            var receiveBuffer = new byte[1024 * 4];

            receiveSaea.SetBuffer(receiveBuffer, 0, receiveBuffer.Length); //设置消息的缓冲区大小
            receiveSaea.Completed     += OnReceiveCompleted;               //绑定回调事件
            receiveSaea.RemoteEndPoint = _endPoint;
            _socket.ReceiveAsync(receiveSaea);

            string timestamp = MD5Utils.ConvertDateTimeInt(DateTime.Now) + "";
            string uuid      = Guid.NewGuid().ToString().Replace("-", "").ToUpper();
            string vk        = MD5Utils.GetMD5(timestamp + "7oE9nPEG9xXV69phU31FYCLUagKeYtsF" + uuid);

            SendMsg(Request.gid(rid, uuid, timestamp, vk));
        }
 private void work()
 {
     Console.WriteLine("心跳包线程启动");
     while (IsRunning)
     {
         Thread.Sleep(40000);
         string message = Request.keepLive(MD5Utils.ConvertDateTimeInt(DateTime.Now));
         if (IsRunning)
         {
             socket.SendMsg(message);
         }
     }
 }