示例#1
0
 public async Task ReceiveAsync(ITcpClient client)
 {
     try
     {
         ThrowIf.ArgumentIsNull(client, nameof(client));
         byte[]         buffer        = new byte[BufferLength];
         INetworkStream networkStream = default;
         try
         {
             networkStream = client.GetStream();
         }
         catch (Exception exception)
         {
             if (!Disconnecting)
             {
                 throw new TcpIpGetStreamFailedException(exception);
             }
         }
         StreamBufferReader2 streamBufferReader = StreamBufferReader2.Create(Identifier, Encoding.ASCII,
                                                                             Convert.ToByte(EndOfLine), SynchronizationContext,
                                                                             OnDataItemReceived);
         await ReceiveAsync(networkStream, streamBufferReader, buffer).ConfigureAwait(false);
     }
     catch (Exception exception)
     {
         if (!Disconnecting)
         {
             throw new TcpIpReceiveFailedException(exception);
         }
     }
 }