TCP協議是互聯網中最重要的協議之一,幾乎所有網絡服務都是基於TCP協議的。TCP協議最主要的特點是:

            1.基于連接的協議

            2.保証數據包准確到達。

            3.保証各數據包到達的順序與數據包發出的順序相同。

            4.傳輸的數據無消息邊界

      使用TCP協議開發套接字應用程序的方法有兩種:同步套接字和異步套接字。

      同步套接字:

           在通用Socket進行連接、接收、發送操作時,客房機和服務器會暫停當前工作,處於等待狀態,即一直等到有數據時才繼續執行下面的語句。一般在阻塞方式下使用這種方式。可見,同步套接字適用於網絡傳輸量不太大的處理。當網絡傳輸量很大時時間的等待可能會讓用戶無法忍受

       異步套接字

            在通用Socket進行連接、接收、發送操作時,客房機和服務器不會暫停當前工作,而是利用callback機制進行連接、接收、發送處理。異步套接字適用於需要在網絡上進行大量數據傳輸的應用程序,比如有幾客戶同時傳輸的情況。

           使用同步套接字進行編程相對比較簡單,而異步套接字則比較復雜。真正理解了同步套接字的編程思路以後,再理解異步套接字就不會感到太困難了。

定議與獲取主機信息

       要讓本地主機和其祂主機進行通信,必須提供本地主機的IP地址和端口號。可以用System.Net名稱空間中的IPEndPoint類表示IP地址和端口的組合。其構造函數常用形式為:

            public IPEndPoint(IPAddress address,int port)

       在System.Net名稱空間中有一個Dns類,提供了所有需要的DNS功能,可以利用該類得到所需要的本地或遠程主機信息。在同瞳操作中,Dns類提供了4種靜態方法:

       1.Dns.GetHosName():返回一個字符串類型的本地主機名,如:string strHostName=Dns.GetHostName();

       2.Dns.GetHostByName(string strhostname)

         根據提供的本地或遠程主機名返回一個IPHosetEntry對象,該對象有3個屬性:

         AddresssList IPAddress 對象的數組,數組的每個元素對應一個IP地址。

         Aliases  字符串對象的數組,數組中每個元素對應一個別名。

         HostName 字符串對象,表示主機名。

         例如:IPHostEntry localaddress=Dns.GetHostByName(Dns.GetHostName());

       3.Dns.GetHostByAddress(addrss)

          根據提供的本地或遠程IP地址返回一個IPHostEntry對象。這個方法有二種重載形式:

          IPHostEntry GetHostByAddress(IPAddress address)

          IPHostEntry GetHostByAddress(string address)

        4.Dns.Resolve()

           有時候,IP地址或主機名是根據用戶輸入得到的,可是編程時並不知道將來用戶在使用時會按昭哪種形式輸入,可能是IP地址也可能是主機名。這進可用Dns.Resolve()方法得到IPHostEntry對象。

 

posted on 2008-12-09 10:19  Blade  阅读(188)  评论(0编辑  收藏  举报