internal virtual int Receive(byte[] buffer, SocketFlags flags) { EnsureNotDisposed(); if (buffer == null) { throw new ArgumentNullException("buffer"); } int receivedBytes = _socketProxy.Receive(buffer, (int)flags); if (receivedBytes >= 0) { ReceiveStatus = ReceiveStatus.Received; return(receivedBytes); } if (ErrorProxy.ShouldTryAgain) { ReceiveStatus = ReceiveStatus.TryAgain; return(-1); } if (ErrorProxy.ContextWasTerminated) { ReceiveStatus = ReceiveStatus.Interrupted; return(-1); } throw new ZmqSocketException(ErrorProxy.GetLastError()); }
private void TryReadAvailableData() { int available = Math.Min(_connection.Available, RecvSize - _firstPacketLength); if (available > 0) { var size = _connection.Receive(_connetionRecvBuffer, _firstPacketLength, available, SocketFlags.None); _firstPacketLength += size; } }