private void DecodeReceive(SocketAsyncEventArgs saea) { try { byte[] buffer = saea.Buffer; int offset = saea.Offset; int count = saea.BytesTransferred; int error = 0; if (!DecodeReceive(buffer, offset, count, saea.RemoteEndPoint, out error)) { if (error > 0) { CloseSAEA(saea, receiveSAEAPool); return; } RawMessage message = RawMessage.Clone(buffer, offset, count); OnReceiveAsyncCallback(message); } } catch (Exception ex) { NetDebug.Error("[NetSocket] OnReceive, error: {0}.", ex.Message.ToString()); } }
protected void NotifyReceiveMessage(byte[] buffer, int offset, int count, EndPoint remote) { RawMessage message = RawMessage.Clone(buffer, offset, count, NetDefine.MAX_TCP_MESSAGE_LENGTH); message.remote = remote; OnReceiveAsyncCallback(message); RawMessage.Clear(message); }