private void ReceiveMsg() { MessageInfo domianBindInfo = new MessageInfo() { Id = Guid.NewGuid().ToString(), MessageType = MsgType.Login , Key = MsgType.Login.ToString(), Body = UserName }; SendMessageToServer(domianBindInfo); while (client_Socket != null && client_Socket.Connected) { try { byte[] buffer = new byte[2000]; int count = client_Socket.Receive(buffer); if (count == 0) { continue; } MessageInfo info = buffer.ToMessageInfo(); ResponseToServer(info); if (ProcessData != null) { ProcessData(info); } } catch (Exception ex) { client_Socket.Close(); } } }
private void SendMessageToServer(MessageInfo returnInfo) { client_Socket.Send(returnInfo.ToBytes()); }
//private void ProcessData(MessageInfo info) //{ // if (info.MessageType==MsgType.Info) // { // //if () // //{ // //} info.Body // } //} private void ResponseToServer(MessageInfo info) { MessageInfo returnInfo = new MessageInfo() { Id = info.Id }; switch (info.MessageType) { case MsgType.Simple: returnInfo.MessageType = MsgType.ACK; break; case MsgType.Info: returnInfo.MessageType = MsgType.ACK; break; case MsgType.XT: returnInfo.MessageType = MsgType.XT; break; default: break; } returnInfo.Key = returnInfo.MessageType.ToString(); returnInfo.Body = ""; SendMessageToServer(returnInfo); }