示例#1
0
        private async Task ReceiveAsync(INetworkStream networkStream, StreamBufferReader2 streamBufferReader, byte[] buffer)
        {
            int bytesReceived = 0;

            do
            {
                try
                {
                    bytesReceived = await ReadAsync(networkStream, buffer).ConfigureAwait(false);
                }
                catch (Exception exception)
                {
                    if (!Disconnecting)
                    {
                        throw new TcpIpInnerReceiveFailedException(exception);
                    }
                }
                if (bytesReceived > 0)
                {
                    OnDataReceived(buffer, bytesReceived);
                    streamBufferReader.GetStrings(buffer, bytesReceived);
                }
            } while (!Disconnecting && bytesReceived > 0);
        }