/// <summary> /// 处理收到的数据,转化为netmsg /// </summary> private void ProcessReceive() { while (true) { byte[] data = EncodingTools.Decode(ref cache); if (data == null) { break; } msgQueue.Enqueue(NetMsg.Deserialize(data)); } }
/// <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); } }