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