C# Pop3Connection類簡介
本文向大家介紹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,從而關閉連接,結束會話。
【編輯推薦】