套接字为什么叫套接字?
刚学编程的时候,我买了一本《Python基础教程(第二版)》,读到网络编程,我看到一个词——“套接字(socket)”,这是什么意思呢,书里说“套接字基本是两个端点的程序之前信息通道”,可还是不明白“套接字”这三个字是什么意思,之后我也没有认真看完这本书,这个疑惑就这样一直随着我到现在。直到昨天,这个疑惑突然冒上心头,我终于狠下心来,抬起高贵的手指,上百度搜一搜,决心要搞懂“套接字”为什么叫“套接字”。
关于这本书,分享一些故事:我的编程之旅
说回我查到的“套接字“:
首先套接字原词为“socket”,直译就是插座的意思,最先采用这个词的人,觉得网络连接,就像插口和插座一样,一方插,一方被插(知乎用户的回答)。
除此之外,linux等系统中“套接字”对应“socket word”,所以“字”也就是对应“word”,可能指计算机的数据,也可能指储存socket的数据标识,因为端口号是两字节,就是一个WORD。
至于为什么翻译为“套接字”:
有人说是“套用-接口-标识”的意思;
有人说是“套接起来的字符串”的意思;
有人说是“将网络数据包一层一层地套起来传输”的意思;
总是就是望文生义,毕竟怎么解释其实不重要,东西还是那个东西。
看了一圈之后,我最赞同的解释是:套接指的是套接管,就是将两根水管套接起来的管子,然后“字”是此连接的数据标识,所以套接字就是一个标识连接的数据体。
附原作者的图:(Socket为什么要翻译成套接字? – FrankIsFree的回答 – 知乎 //www.zhihu.com/question/21383903/answer/258837774)
最后,我也试着翻译一下——“插接器”,哈哈哈,好像更烂了。不过,大家都觉得“套接字”这个翻译很烂,我一开始也这样认为,可昨晚闲思时想到,这样的翻译至少非常有行业特征,只要说到套接字,就知道一定是计算机里网络通信的内容,绝对不会联系到水电上去。而且名称嘛,也就是一种共识,只要你我都明白指代是什么就好,所以把它当成行业术语的一朵璀璨的奇葩,也不错吧?