コード例 #1
0
 /// <summary>
 /// 处理收到的数据,转化为netmsg
 /// </summary>
 private void ProcessReceive()
 {
     while (true)
     {
         byte[] data = EncodingTools.Decode(ref cache);
         if (data == null)
         {
             break;
         }
         msgQueue.Enqueue(NetMsg.Deserialize(data));
     }
 }
コード例 #2
0
 /// <summary>
 /// 处理tcp数据报,转化为NetMsg,每解析一个NetMsg,就触发一次ReceiveCompleted事件
 /// </summary>
 /// <remarks>
 /// 一个tcp数据报可能含多个或者一部分数据包,需要自行拆分
 ///tcp数据报:tcp协议一次传输的数据
 ///数据包:包装的一段数据,包含包头和数据段,过于简单就不封装了
 ///</remarks>
 private void ProcessData()
 {
     while (true)
     {
         byte[] data = EncodingTools.Decode(ref cache);
         if (data == null)
         {
             break;
         }
         NetMsg msg = NetMsg.Deserialize(data);
         ReceiveCompleted(this, msg);
     }
 }