它是我的应用程序在调试模式下的日志:
与imap.ya.ru交谈:http://s013.radikal.ru/i325/1412/10/14b46c9d7a2c.png。
与imap.gmail.com交谈:http://s61.radikal.ru/i174/1412/d2/113d5fc6289f.png。
什么意思是这些符号?
我使用C#。
我包含的内容:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Net.Security;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Windows.Forms;
我的代码片段:
int port = useSSL ? portIMAPoverSSL : portIMAP;
Stream stream = new TcpClient(ImapServerName,port).GetStream();
stream.ReadTimeout = 10;
if (useSSL)
{
SslStream ssl = new SslStream(stream);
ssl.AuthenticateAsClient(ImapServerName);
stream = ssl;
}
StreamWriter w = new StreamWriter(stream,Encoding.ASCII);
w.AutoFlush = true;
StreamReader r = new StreamReader(stream,Encoding.ASCII);
读取服务器消息而不是阻止GUI我使用此过程:
static string readServerAndProcessMessages()
{
while (true)
{
try
{
return r.ReadLine();
}
catch(IOException e)
{
Application.DoEvents();
}
}
}
有时这段代码:
string serv = readServerAndProcessMessages();
,返回(不包含<>):<↨♥☺>,有时<↨♥☺0>作为服务器响应的前缀。这意味着什么?加入了IMAP4 RFC,我找不到任何关于此的信息。
答案 0 :(得分:2)
找到了ERROR的来源!!!
由于:
stream.ReadTimeout = 10;
SSL协议小裂缝,并出现↨♥☺神器!!!
使用异步读取操作,此BUG消失!我很高兴。