套接字為什麼叫套接字?

H5L0發表於2021-08-08

剛學程式設計的時候,我買了一本《Python基礎教程(第二版)》,讀到網路程式設計,我看到一個詞——“套接字(socket)”,這是什麼意思呢,書裡說“套接字基本是兩個端點的程式之前資訊通道”,可還是不明白“套接字”這三個字是什麼意思,之後我也沒有認真看完這本書,這個疑惑就這樣一直隨著我到現在。直到昨天,這個疑惑突然冒上心頭,我終於狠下心來,抬起高貴的手指,上百度搜一搜,決心要搞懂“套接字”為什麼叫“套接字”。

關於這本書,分享一些故事:我的程式設計之旅

說回我查到的“套接字“:

首先套接字原詞為“socket”,直譯就是插座的意思,最先採用這個詞的人,覺得網路連線,就像插口和插座一樣,一方插,一方被插(知乎使用者的回答)。

除此之外,linux等系統中“套接字”對應“socket word”,所以“字”也就是對應“word”,可能指計算機的資料,也可能指儲存socket的資料標識,因為埠號是兩位元組,就是一個WORD。

至於為什麼翻譯為“套接字”:

有人說是“套用-介面-標識”的意思;

有人說是“套接起來的字串”的意思;

有人說是“將網路資料包一層一層地套起來傳輸”的意思;

總是就是望文生義,畢竟怎麼解釋其實不重要,東西還是那個東西。

看了一圈之後,我最贊同的解釋是:套接指的是套接管,就是將兩根水管套接起來的管子,然後“字”是此連線的資料標識,所以套接字就是一個標識連線的資料體。

附原作者的圖:(Socket為什麼要翻譯成套接字? - FrankIsFree的回答 - 知乎 https://www.zhihu.com/question/21383903/answer/258837774)

 

 

 

 

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

 

相關文章