本文向大家介绍C# Pop3Connection类,可能好多人还不了解C# Pop3Connection类,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。
C# Pop3Connection类
C# Pop3Connection类可以完成与主机的连接、通讯和关闭连接等功能,所以我们必须调用.Net框架中进行网络通讯的类库,在此我们运用的是TcpClient类的对象作为网络连接的客户端。同时,在与主机的通讯过程中必然少不了对于输入输出流的控制。于是,我们在设计该类的时候,首先得添加如下命名空间:
- using System.IO;
- using System.Net.Sockets;
C# Pop3Connection类的成员变量包括以下几个:
- private TcpClient socket;
- private StreamReader reader;
- private StreamWriter writer;
- private bool connected;
其中,bool类型的connected变量用于判断是否与主机取得了连接,它是该类的一个属性,对其操作如下:
- public bool Connected
- {
- get{return connected}
- }
C# Pop3Connection类的主要方法包含以下几个:
- internal void Open(string host, int port)
- {
- if(host == null || host.Trim().Length == 0 || port <= 0)
- {
- throw new System.ArgumentException("Invalid Argument found.");
- }
- socket.Connect(host, port);
- reader = new StreamReader(socket.GetStream(), System.Text.Encoding.ASCII);
- writer = new StreamWriter(socket.GetStream(), System.Text.Encoding.ASCII);
- connected = true;
- }
- internal void SendCommand(string cmd)
- {
- writer.WriteLine(cmd);
- writer.Flush();
- }
- internal void GetReply(out string reply, out int code)
- {
- reply = reader.ReadLine();
- code = reply == null ? -1 : Int32.Parse(reply.Substring(0, 3));
- }
- internal void Close()
- {
- reader.Close();
- writer.Flush();
- writer.Close();
- reader = null;
- writer = null;
- socket.Close();
- connected = false;
- }
根据这些方法的名称,我们不难知道它们的作用。***个方法Open()就是根据主机名和端口号取得和服务器的连接。一旦连接成功,就通过 TcpClient类的对象获取网络通讯流并新建一个StreamReader对象和一个StreamWriter对象。不言而喻,这两个对象的作用是控制网络通讯的输出和输入。***,还要将connected的属性设置为true。第二个方法SendCommand()就是在上面的 StreamWriter类的对象writer的基础上往网络套接字中输入信息。而第三个方法GetReply()则正好相反,它是用来从网络套接字中获取信息的。***一个方法Close()的作用则是关闭输出、输入流的对象,然后调用TcpClient类的对象Close()方法并将connected 属性设置为false,从而关闭连接,结束会话。
【编辑推荐】