繁体   English   中英

C#SslStream在第二个请求时引发IOException

[英]C# SslStream throws IOException on second request

我也是。 5分钟的编码= 1天尝试修复该代码。 这是我的代码, 仅在第二个请求上抛出IOException(无法从流中读取),第一个可以正常工作。 bytes = sslStream.Read(buffer, 0, buffer.Length);处抛出异常bytes = sslStream.Read(buffer, 0, buffer.Length); 我试图解决此问题,但没有结果。

这是请求函数的代码:

public void SendRequest(string request)
{
    byte[] buffer = new byte[2048];
    int bytes = -1;
    StringBuilder message = new StringBuilder() ;

    sslStream.Write(Encoding.ASCII.GetBytes(request + "\r\n"));
    do
    {
        try
        {
            bytes = sslStream.Read(buffer, 0, buffer.Length);
            message.Append(Encoding.ASCII.GetString(buffer, 0, bytes));
        }
        catch (Exception)
        {
            throw;
        }

    } while(!message.ToString().Contains("\n"));
    Console.WriteLine(message);
}

调用SendRequest()函数的代码:

while((request = Console.ReadLine().ToLower()) != "exit")
{
    con.SendRequest(request);
}

如果您需要完整的代码,请在此处检查: GitHub Repo

我知道现在发生了什么。 我正在连接到POP3服务器-问候消息后,会话处于AUTHORIZATION状态,当我必须传递两个命令时: USERPASS ,如果我没有传递正确的命令,则服务器将关闭连接(这就是为什么我得到IOException的原因)。 唯一不会关闭连接的3个命令是: USERPASSQUIT 我希望这个线程将来能对某人有所帮助:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM