private void ReceiveInternal(ReceiveState receiveState) { SafeSocketOperation("BeginReceive", receiveState.SourceSocket, () => { receiveState.SourceSocket.InnerSocket.BeginReceive(receiveState.Buffer, 0, receiveState.ReceiveSize, 0, ReceiveCallback, receiveState); }); }
private void StartToReceiveMessageBody(ReceiveState receiveState, byte[] messageHeaderBuffer, SocketInfo sourceSocketInfo, int bytesRead) { string errorMessage; var messageLength = SocketUtils.ParseMessageLength(messageHeaderBuffer, out errorMessage); if (messageLength > 0) { receiveState.MessageSize = messageLength; _logger.DebugFormat("Start to receive new message, message body size:{0}, bytesRead:{1}", receiveState.MessageSize, bytesRead); var size = receiveState.MessageSize <= ReceiveState.BufferSize ? receiveState.MessageSize.Value : ReceiveState.BufferSize; receiveState.ReceivedData.Clear(); receiveState.ClearBuffer(); receiveState.ReceiveSize = size; ReceiveInternal(receiveState); } else { _logger.ErrorFormat("Parse message length failed, source socket address:{0}, receiveSize:{1}, bytesRead:{2}, errorMessage:{3}", sourceSocketInfo.SocketRemotingEndpointAddress, receiveState.ReceiveSize, bytesRead, errorMessage); } }