コード例 #1
0
        private async Task <string> GetTcpResponseAsync(TcpClient client, CancellationToken cancellationToken)
        {
            NetworkStream networkStream = client.GetStream();

            byte[]        readBuffer    = new byte[1024];
            StringBuilder stringBuilder = new StringBuilder();

            // Incoming message may be larger than the buffer size.
            do
            {
                int numberOfBytesRead = await networkStream.ReadAsync(readBuffer, 0, readBuffer.Length, cancellationToken)
                                        .ConfigureAwait(false);

                string s = Encoding.ASCII.GetString(readBuffer, 0, numberOfBytesRead);
                stringBuilder.Append(s);
            }while (networkStream.DataAvailable);

            string response = stringBuilder.ToString();

            _logger.VerbosePii("TcpInterceptor: Message received - " + response,
                               "TcpInterceptor: Message received. Size: " + response.Length);

            return(response);
        }