c# - StreamReader.ReadLine() 在与 POP3 一起使用时总是失败

标签 c# sockets ssl

在我的以下代码块中,我总是无法从流中读取数据。

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/

相关文章:

java - 如何使用套接字编程在Android中测量数据包丢失?

multithreading - 阐明 OpenSSL 0.9.8L 并发支持 - 如果非并发完成,SSL 实例能否被多个线程使用?

android - HTTPS 在 Android 上使用 DefaultHttpClient

c# - 在 UWP 中获取已安装的应用程序列表

C# - WebClient - 远程服务器发送 503 错误

c# - 通过数据仓库以编程方式检索 TFS "instrumented binaries"的路径信息

python - 带有python的ssl客户端服务器

c# - 具有固定类型参数的抽象工厂方法

cocoa-touch - 即使断开连接,GCDAsyncSocket 也无法多次接受 OnPort

node.js - Nodejs setNoDelay() 不起作用。是否有刷新套接字缓冲区的替代方案?