套接字為什么叫套接字?
剛學(xué)編程的時(shí)候,我買了一本《Python基礎(chǔ)教程》,讀到網(wǎng)絡(luò)編程時(shí)我看到一個(gè)詞——“套接字(socket)”,書里說“套接字基本是兩個(gè)端點(diǎn)的程序之間信息通道”,可我還是不明白“套接字”這三個(gè)字是什么意思,這個(gè)疑惑就這樣一直隨著我到現(xiàn)在。
關(guān)于這本書,分享一些故事:我的編程之旅
直到昨天,這個(gè)疑惑突然冒上心頭,我終于狠下心來,抬起高貴的手指,上百度搜一搜,決心要搞懂“套接字”為什么叫“套接字”。
套接字的根源
首先套接字原詞為“socket”,直譯就是插座的意思,最先采用這個(gè)詞的人,覺得網(wǎng)絡(luò)連接,就像插口和插座一樣,一方插,一方被插(知乎用戶的回答)。
除此之外,linux等系統(tǒng)中“套接字”對應(yīng)“socket word”,所以“字”也就是對應(yīng)“word”,這個(gè)“word”可能指儲存socket的數(shù)據(jù)標(biāo)識,因?yàn)槎丝谔柺莾勺止?jié),就是一個(gè)WORD。
C、Pascal、匯編中常用的類型名:
一個(gè)字節(jié):BYTE
兩個(gè)字節(jié):WORD
四個(gè)字節(jié):DWORD (double word)
八個(gè)字節(jié):QWORD (quad word)
“socket”為什么翻譯為“套接字”
至于為什么翻譯為“套接字”:
有人說是“套用-接口-標(biāo)識”的意思;
有人說是“套接起來的字符串”的意思;
有人說是“將網(wǎng)絡(luò)數(shù)據(jù)包一層一層地套起來傳輸”的意思;
總是就是望文生義,畢竟怎么解釋其實(shí)不重要,東西還是那個(gè)東西。
看了一圈我最贊同的解釋是:套接指的是套接管,就是將兩根水管套接起來的管子,然后“字”是此連接的數(shù)據(jù)標(biāo)識,即一個(gè)WORD,所以套接字就是一個(gè)標(biāo)識連接的數(shù)據(jù)體。
附原作者的圖:(Socket為什么要翻譯成套接字? - FrankIsFree的回答 - 知乎 https://www.zhihu.com/question/21383903/answer/258837774)


最后,我也試著翻譯一下——“插接器”,哈哈哈好像更爛了。不過大家都覺得“套接字”這個(gè)翻譯很爛,我一開始也這樣認(rèn)為,可這樣的翻譯至少非常有行業(yè)特征,只要說到套接字,就知道一定是計(jì)算機(jī)里網(wǎng)絡(luò)通信的內(nèi)容,絕對不會(huì)聯(lián)系到水電上去。而且名稱嘛,也就是一種共識,只要你我都明白指代是什么就好,所以把它當(dāng)成行業(yè)術(shù)語的一朵璀璨的奇葩,也不錯(cuò)吧。

浙公網(wǎng)安備 33010602011771號