在我的以下代码块中,我总是无法从流中读取数据。
Data = "STAT"+CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData,0,szData.Length);
Status.Items.Add(RdStrm.ReadLine());
示例代码如下。
// create server POP3 with port 995
Server = new TcpClient(POPServ.Text,995);
Status.Items.Clear();
try
{
// initialization
NetStrm = Server.GetStream();
RdStrm= new StreamReader(Server.GetStream());
Status.Items.Add(RdStrm.ReadLine());
// Login Process
Data = "USER "+ User.Text+CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData,0,szData.Length);
Status.Items.Add(RdStrm.ReadLine());
Data = "PASS "+ Passw.Text+CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData,0,szData.Length);
Status.Items.Add(RdStrm.ReadLine());
// Send STAT command to get information ie: number of mail and size
Data = "STAT"+CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData,0,szData.Length);
Status.Items.Add(RdStrm.ReadLine());
我也想启用 SSL。请帮我!!!
最佳答案
var client = new TcpClient(serverName, port);
var sslStream = new System.Net.Security.SslStream(m_client .GetStream());
sslStream .AuthenticateAsClient(serverName);
一切看起来都很好。读取是否超时?您在登录期间是否收到 +OK 消息?我会尝试读取缓冲区以查看是否返回任何内容。也可以尝试不同的命令。
我从未将 ReadLine() 用于网络流。我一直使用 BeginRead。
Stream.BeginRead,然后检查回车换行符。
http://msdn.microsoft.com/en-us/library/system.io.stream.beginread.aspx
关于c# - StreamReader.ReadLine() 在与 POP3 一起使用时总是失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5833490/