/// <summary> /// 处理数据 /// </summary> private void ProcessData() { isProcessingReceive = true; //解析包,从缓存区里取出一个完整的包 byte[] packet = EncodeTool.DecodePacket(ref cache); if (packet == null) { isProcessingReceive = false; return; } NetMsg msg = EncodeTool.DecodeMsg(packet); if (receiveCompleted != null) { receiveCompleted(this, msg); } ProcessData(); }
/// <summary> /// 处理数据 /// </summary> private void ProcessData() { isProcessingReceive = true; // 解析包,从缓冲区里取出一个完整的包 byte[] packet = EncodeTool.DecodePacket(ref cache); if (packet == null) { isProcessingReceive = false; return; } // 反序列化 NetMsg msg = EncodeTool.DecodeMsg(packet); if (receiveCompleted != null) // 有人注册了委托 { receiveCompleted(this, msg); // 将处理完后的 msg 回调给上层 } ProcessData(); // 递归,知道缓存区的数据为 null }