我也是,是的。 5分钟的编码= 1天试图修复代码。这是我的代码,它抛出IOException(无法从流中读取)仅在第二个请求,第一个正常工作。我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
答案 0 :(得分:0)
我知道现在发生了什么。我正在连接到POP3服务器 - 在问候消息后会话处于AUTHORIZATION状态,当我必须传递两个命令:USER
和PASS
时,如果我没有传递正确的命令,服务器关闭连接(这就是我获得IOException的原因)。只有3个命令没有关闭连接:USER
,PASS
,QUIT
。我希望这个帖子将来会帮助某人:)