套接字为什么叫套接字?

刚学编程的时候,我买了一本《Python基础教程》,读到网络编程时我看到一个词——“套接字(socket)”,书里说“套接字基本是两个端点的程序之间信息通道”,可我还是不明白“套接字”这三个字是什么意思,这个疑惑就这样一直随着我到现在。

关于这本书,分享一些故事:我的编程之旅

直到昨天,这个疑惑突然冒上心头,我终于狠下心来,抬起高贵的手指,上百度搜一搜,决心要搞懂“套接字”为什么叫“套接字”。

套接字的根源

首先套接字原词为“socket”,直译就是插座的意思,最先采用这个词的人,觉得网络连接,就像插口和插座一样,一方插,一方被插(知乎用户的回答)。

除此之外,linux等系统中“套接字”对应“socket word”,所以“字”也就是对应“word”,这个“word”可能指储存socket的数据标识,因为端口号是两字节,就是一个WORD

C、Pascal、汇编中常用的类型名:

一个字节:BYTE

两个字节:WORD

四个字节:DWORD (double word)

八个字节:QWORD (quad word)

“socket”为什么翻译为“套接字”

至于为什么翻译为“套接字”:

有人说是“套用-接口-标识”的意思;

有人说是“套接起来的字符串”的意思;

有人说是“将网络数据包一层一层地套起来传输”的意思;

总是就是望文生义,毕竟怎么解释其实不重要,东西还是那个东西。

看了一圈我最赞同的解释是:套接指的是套接管,就是将两根水管套接起来的管子,然后“字”是此连接的数据标识,即一个WORD,所以套接字就是一个标识连接的数据体。

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

 

最后,我也试着翻译一下——“插接器”,哈哈哈好像更烂了。不过大家都觉得“套接字”这个翻译很烂,我一开始也这样认为,可这样的翻译至少非常有行业特征,只要说到套接字,就知道一定是计算机里网络通信的内容,绝对不会联系到水电上去。而且名称嘛,也就是一种共识,只要你我都明白指代是什么就好,所以把它当成行业术语的一朵璀璨的奇葩,也不错吧。

 

posted @ 2021-08-08 15:01  H5L0  阅读(3479)  评论(1编辑  收藏  举报