Ejemplo n.º 1
0
 private void ReceiveInternal(ReceiveState receiveState)
 {
     SafeSocketOperation("BeginReceive", receiveState.SourceSocket, () =>
     {
         receiveState.SourceSocket.InnerSocket.BeginReceive(receiveState.Buffer, 0, receiveState.ReceiveSize, 0, ReceiveCallback, receiveState);
     });
 }
Ejemplo n.º 2
0
        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);
            }
        }