套接字為什麼叫套接字?
剛學編程的時候,我買了一本《Python基礎教程(第二版)》,讀到網路編程,我看到一個詞——「套接字(socket)」,這是什麼意思呢,書里說「套接字基本是兩個端點的程式之前資訊通道」,可還是不明白「套接字」這三個字是什麼意思,之後我也沒有認真看完這本書,這個疑惑就這樣一直隨著我到現在。直到昨天,這個疑惑突然冒上心頭,我終於狠下心來,抬起高貴的手指,上百度搜一搜,決心要搞懂「套接字」為什麼叫「套接字」。
關於這本書,分享一些故事:我的編程之旅
說回我查到的「套接字「:
首先套接字原詞為「socket」,直譯就是插座的意思,最先採用這個詞的人,覺得網路連接,就像插口和插座一樣,一方插,一方被插(知乎用戶的回答)。
除此之外,linux等系統中「套接字」對應「socket word」,所以「字」也就是對應「word」,可能指電腦的數據,也可能指儲存socket的數據標識,因為埠號是兩位元組,就是一個WORD。
至於為什麼翻譯為「套接字」:
有人說是「套用-介面-標識」的意思;
有人說是「套接起來的字元串」的意思;
有人說是「將網路數據包一層一層地套起來傳輸」的意思;
總是就是望文生義,畢竟怎麼解釋其實不重要,東西還是那個東西。
看了一圈之後,我最贊同的解釋是:套接指的是套接管,就是將兩根水管套接起來的管子,然後「字」是此連接的數據標識,所以套接字就是一個標識連接的數據體。
附原作者的圖:(Socket為什麼要翻譯成套接字? - FrankIsFree的回答 - 知乎 //www.zhihu.com/question/21383903/answer/258837774)


最後,我也試著翻譯一下——「插接器」,哈哈哈,好像更爛了。不過,大家都覺得「套接字」這個翻譯很爛,我一開始也這樣認為,可昨晚閑思時想到,這樣的翻譯至少非常有行業特徵,只要說到套接字,就知道一定是電腦里網路通訊的內容,絕對不會聯繫到水電上去。而且名稱嘛,也就是一種共識,只要你我都明白指代是什麼就好,所以把它當成行業術語的一朵璀璨的奇葩,也不錯吧?

