百科解釋
通訊的基石是套接口,一個套接口是通訊的一端。在這一端上你可以找到與其對應(yīng)的一個名字。一個正在被使用的套接口都有它的類型和與其相關(guān)的進程。套接口存在于通訊域中。通訊域是為了處理一般的線程通過套接口通訊而引進的一種抽象概念。套接口通常和同一個域中的套接口交換數(shù)據(jù)(數(shù)據(jù)交換也可能穿越域的界限,但這時一定要執(zhí)行某種解釋程序)。Windows Sockets規(guī)范支持單一的通訊域,即Internet域。各種進程使用這個域互相之間用Internet協(xié)議族來進行通訊(Windows Sockets 1.1以上的版本支持其他的域,例如Windows Sockets 2)。 套接口可以根據(jù)通訊性質(zhì)分類;這種性質(zhì)對于用戶是可見的。應(yīng)用程序一般僅在同一類的套接口間通訊。不過只要底層的通訊協(xié)議允許,不同類型的套接口間也照樣可以通訊。 用戶目前可以使用兩種套接口,即流套接口和數(shù)據(jù)報套接口。流套接口提供了雙向的,有序的,無重復(fù)并且無記錄邊界的數(shù)據(jù)流服務(wù)。數(shù)據(jù)報套接口支持雙向的數(shù)據(jù)流,但并不保證是可靠,有序,無重復(fù)的。也就是說,一個從數(shù)據(jù)報套接口接收信息的進程有可能發(fā)現(xiàn)信息重復(fù)了,或者和發(fā)出時的順序不同。數(shù)據(jù)報套接口的一個重要特點是它保留了記錄邊界。對于這一特點,數(shù)據(jù)報套接口采用了與現(xiàn)在許多包交換網(wǎng)絡(luò)(例如以太網(wǎng))非常類似的模型。 在Linux下,所有的I/O操作都是通過讀寫文件描述符而產(chǎn)生的,文件描述符是一個和打開的文件相關(guān)聯(lián)的整數(shù),這個文件并不只包括真正存儲在磁盤上的文件,還包括一個網(wǎng)絡(luò)連接、一個命名管道、一個終端等,而套接口就是系統(tǒng)進程和文件描述符通信的一種方法。目前最常用的套接口是:字節(jié)流套接口(基于TCP)和數(shù)據(jù)報套接口(基于UDP),當然還有原始套接口(原始套接口提供TCP套接口和UDP套接口所不提供的功能,如構(gòu)造自己的TCP或UDP分組)等,我們這里主要介紹字節(jié)流套接口和數(shù)據(jù)報套接口。
移動通信網(wǎng) | 通信人才網(wǎng) | 更新日志 | 團隊博客 | 免責聲明 | 關(guān)于詞典 | 幫助