private void OnReceiveData() { int count = 0; object msg = null; try { if (Packer.Decode(_recBuffer.Bytes, _recBuffer.ReadIdx, _recBuffer.Length, out msg, out count)) { _recBuffer.MoveReadIdx(count); _recBuffer.CheckAndMoveBytes(); lock (_msgList) { _msgList.Add(msg); } if (_recBuffer.Length > 2)// 解下一个包 { OnReceiveData(); } } } catch (Exception e) { NetMsgDispatcher.Trigger(MSG_ERROR, e); Close(e.ToString()); } }