做網(wǎng)絡(luò)通信的朋友大都對(duì)socket這個(gè)詞不會(huì)感到陌生,但是它的中文翻譯是叫套接口還是套接字呢砌梆,未必大多數(shù)朋友能夠分清贬循,今天我們就來聊聊socket的中文名稱。
socket一詞的起源
在組網(wǎng)領(lǐng)域的首次使用是在1970年2月12日發(fā)布的文獻(xiàn)IETF RFC33中發(fā)現(xiàn)的杖虾,撰寫者為Stephen Carr、Steve Crocker和Vint Cerf坟比。根據(jù)美國計(jì)算機(jī)歷史博物館的記載嚷往,Croker寫道:"命名空間的元素都可稱為套接字接口。一個(gè)套接字接口構(gòu)成一個(gè)連接的一端间影,而一個(gè)連接可完全由一對(duì)套接字接口規(guī)定。"計(jì)算機(jī)歷史博物館補(bǔ)充道:"這比BSD的套接字接口定義早了大約12年巩割。"
socket 百科怎么說
網(wǎng)絡(luò)上的兩個(gè)程序通過一個(gè)雙向的通信連接實(shí)現(xiàn)數(shù)據(jù)的交換付燥,這個(gè)連接的一端稱為一個(gè)socket。
socket本質(zhì)是編程接口(API)键科,對(duì)TCP/IP的封裝,TCP/IP也要提供可供程序員做網(wǎng)絡(luò)開發(fā)所用的接口勋颖,這就是Socket編程接口;HTTP是轎車饭玲,提供了封裝或者顯示數(shù)據(jù)的具體形式;Socket是發(fā)動(dòng)機(jī)矮冬,提供了網(wǎng)絡(luò)通信的能力。
Socket的英文原義是“孔”或“插座”胎署。作為BSD UNIX的進(jìn)程通信機(jī)制,取后一種意思琼牧。通常也稱作"套接字",用于描述IP地址和端口滋恬,是一個(gè)通信鏈的句柄抱究,可以用來實(shí)現(xiàn)不同虛擬機(jī)或不同計(jì)算機(jī)之間的通信。
UNIX Network Programming 中怎么說
來自"UNIX 網(wǎng)絡(luò)編程 卷一:套接字聯(lián)網(wǎng)API 第三版" 的說法
socket一詞一般認(rèn)為譯為套接口更為準(zhǔn)確鼓寺,其理由如下:
- 首先,作為網(wǎng)絡(luò)編程API之一的套接口(sockets敢靡,注意這種用法總是采用復(fù)數(shù)形式苦银,如sockets API, sockets library等),是應(yīng)用層到傳輸層或其他協(xié)議層的訪問接口幔虏。
- 其次,具體使用的套接口是與Unix管道的牟一端類似的東西陷谱,我們既可以往這個(gè)“口”卸數(shù)據(jù),也可以從這個(gè)“口”讀數(shù)據(jù)烟逊。
- 最后铺根,套接口函數(shù)使用套接口描述字(discriptor)訪問具體的套接口,如果把套接口描述字的檢查sockfd翻譯成“套接字”是合適的位迂。從這個(gè)意義上看予颤,一個(gè)套接口可以對(duì)應(yīng)多個(gè)套接字冬阳,因?yàn)閁nix的描述字可以復(fù)制党饮,也可以繼承;反過來氯窍,一個(gè)套接字對(duì)應(yīng)且只對(duì)應(yīng)一個(gè)套接口。但是狼讨,現(xiàn)在socket廣泛被接受的譯法是“套接字”柒竞。