0

I have some function thats create a TCP/IP (IPv4) socket and listen for incoming connections.

private string RunServer(string certificate)
    {
        string messageData = "";
        X509Certificate2 cert = new X509Certificate2(@"C:\a.p12", "qwerty");
        var listener = new TcpListener(IPAddress.Parse("127.0.0.1"), 443);
        listener.Start();
        while (true)
        {
            var client = listener.AcceptTcpClient();
            var sslStream = new SslStream(client.GetStream(), false);
            try
            {
                sslStream.AuthenticateAsServer(cert,
                false, SslProtocols.Tls, true);
                messageData = ReadFromSslClient(sslStream, client);
            }
            finally
            {
                sslStream.Close();
                client.Close();
            }
        }
        return messageData;
    }

And function thats read the client's test message. where an error occurs:

private static string ReadFromSslClient(SslStream sslStream, TcpClient client)
    {
        byte[] buffer = new byte[2048];
        var messageData = new StringBuilder();
        int bytes = -1;
        do
        {
            try{
                if (client.Connected)
                {
                    bytes = sslStream.Read(buffer, 0, 1);
                    messageData.Append(bytes);
                }
                if (messageData.ToString().IndexOf("<EOF>") != -1)
                {
                    break;
                }
             }
            catch(System.NotSupportedException notSupportedException)
            {

            }
        } while (bytes != 0);

        return messageData.ToString();
    }

When i trying to read data to buffer I see 10054 error and client.Connected equals false.

user1175338
  • 79
  • 3
  • 11

0 Answers0