作者:陈振玥
链接:https://www.zhihu.com/question/21383903/answer/64103663
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

作为一条刻(wu)苦(liao)钻(tou)研(ding)的IT狗,告诉你……不……可……考……

理论上对于计算机界的新名词,我们国家有个中国计算机学会,下面有个“计算机术语审定工作委员会”,其职责就是“负责计算机新术语的审定工作,收集、翻译、释义、审定和推荐计算机术语,将审定过的新术语报全国名词审定委员会,审定过的新词在CCF平台上宣传推广”,成员是全国几十名教授哦。很希望能看到他们的成果,可是在他们“CCF平台”上木有任何进一步信息……

好吧我知道他们不会理我,我自己找谷大叔玩。友情提醒,跟我一样睡不着的可以往下继续看,不看也不损失什么,看了也收获不了什么,就4这么拽。

在计算机领域,socket有多个意思。在硬件上,理解为插座上没错的,比如CPU的插座Socket 370, Socket 462, Socket AM3,这个大家都很容易理解,木有异议。让人很费解的是这货出现在软件领域(广义)时,就硬生生改名套接字了。

最早出现socket,目前俺能找到的信息,是1972年一篇关于ARPANET(美国高等研究计划署网络,互联网的祖师爷)面向功能协议的论文(computer.org 的页面):
容易看出,作者是想表达建立网络连接和插插座一样,一方去“插”一方“被插”。1974年另一介绍仿ARPANET直连的论文也提到同样的概念,并更仔细的描述这一交互机制。(ietf.org 的页面
然后真正将socket概念发扬光大的,是1983年4.2BSD的发布,这是伯克利推出内含TCP/IP的第一个Unix BSD版本(berkeley.edu 的页面
从这个时期起,socket是一种进程间通信机制,提供一种供应用程序访问通信协议的操作系统调用,并且通过将socket与Unix系统文件描述符相整合,使得网络读写数据(或者服务调用)和读写本地文件一样容易。很显然,这货已经离插座越来越远了,已经完全不再是硬件上的物件,而是一序列的“指令” ,按汉语的理解,已经具备了“套接”(建立网络通讯或进程间通讯)和“字”(可交互的有序指令串)的概念。

然后我们回到国内。俺在知网翻了很久很久,最早关于socket的文献竟然就是一篇讲翻译的,《计算机网词汇译名讨论》 ,发表于1977年02期《电子计算机动态》,文中把socket译为“媒介(字)”,可见作者已基本理解了该词的意义,并且在此之前应该已经有文献里用到了这个词,可惜实在找不到。

然后在1979年09期《电子计算机参考资料》上一篇无名氏作的《计算机网络软件简介》上,也是关于ARPANET的,作者直接就前无古人的冒出了“套接字”这三个字。同时作者提“信口”。文中虽然没有出现socket字样,但由于所描述的对象实际就是socket,所以俺就认为这就是他了。
能找到最早提及socket的文献,是阎保平发表于1982年12期《计算机研究与发展》的《一种局部互连分组交换网络的体系结构》,文章设计了一种局域网组网的原理和实现,既在文中提到套接字,又在一个图表中示意出了socket。

还有一篇早期文献提到了套接字,是陆圣铭发表在1984年07期《电子技术》上的《微计算机时代的普及型局部网络》,在介绍OMNINET(一种结构简单、灵活的低成本微型机局域网方案)时提到socket为“软插口”,并附加了注释“并不是硬件上的插座”。

所以可以认为在1980年前后几年,socket一词已经进入我国学界,然后在大约80年代中期套接字这一翻译被逐渐普遍接受。

嗯,谢谢观赏。然而看到这也还是没有x用啊,我只是说了说历史,还是没说清为什么是不是,可是我从一开始就说了这是未知之谜啊,哈哈哈哈。其实我也很不喜欢这种生涩的译名,比如context设备上下文、handle句柄、macro宏,我小时候自己看计算机书籍好辛苦的,都是汉字但就是不知道在说什么。

Socket为什么要翻译成套接字的更多相关文章

  1. 项目笔记---Socket Error Code翻译

    前言 在项目中为了方便调试及客户反馈,需要Socket错误数字的中文解释,MSDN上只有英文版,同时也想自己学习而且方便将来更新ErrorCode的实际发生的情景,顾有此博文. MSDN:https: ...

  2. socket , 套接口还是套接字,傻傻分不清楚

    socket 做网络通信的朋友大都对socket这个词不会感到陌生,但是它的中文翻译是叫套接口还是套接字呢,未必大多数朋友能够分清,今天我们就来聊聊socket的中文名称. socket一词的起源 在 ...

  3. Socket编程(C语言实现):socket()函数英文翻译

    最近开始研究使用Socket API来网络编程,想着把自己的感想.感悟写下来.我发现在编程之外还有不少概念性的东西要学习.我觉得应该有以下几点吧: 1.得了解下计算机网络的基本概念,如OSI的7层模型 ...

  4. [Socket网络编程]由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。

    原文地址:http://blog.sina.com.cn/s/blog_70bf579801017ylu.html,记录在此方便查看 解决办法: MSDN的说明: Close 方法可关闭远程主机连接, ...

  5. Linux系统编程(37)—— socket编程之原始套接字

    原始套接字的特点 原始套接字(SOCK_RAW)可以用来自行组装IP数据包,然后将数据包发送到其他终端.也就是说原始套接字是基于IP数据包的编程(SOCK_PACKET是基于数据链路层的编程).另外, ...

  6. Socket编程实践(9) --套接字IO超时设置方法

    引:超时设置3种方案 1. alarm超时设置方法 //代码实现: 这种方式较少用 void sigHandlerForSigAlrm(int signo) { return ; } signal(S ...

  7. Socket套接字

    socket编程,熟悉吧,那到底什么是socket呢?: 我们经常把socket翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口,来供应用 ...

  8. 高性能Server---Reactor模型-----Socket

    高性能Server---Reactor模型   原文地址:http://www.ivaneye.com/2016/07/23/iomodel.html 无处不在的C/S架构 在这个充斥着云的时代,我们 ...

  9. 高性能Server---Reactor模型

    原文地址:http://www.ivaneye.com/2016/07/23/iomodel.html 无处不在的C/S架构 在这个充斥着云的时代,我们使用的软件可以说99%都是C/S架构的! 你发邮 ...

随机推荐

  1. C#中Validating和Validated事件

    http://blog.sina.com.cn/s/blog_6116673a0100fpeo.html 待解读

  2. 如何使用一个对象而非数组元素为ng-options初始化

    a,是引用,而b是一个和a内容相同的另一个对象, 因此不能通过b直接赋值.如果要这样用,就用 track by xxx.id  ,它的作用是通过id(唯一的)去ng-options做一次检索匹配

  3. screenshot of termbox cjk commit

  4. Spark性能测试报告与调优参数

    1.代码中尽量避免group by函数,如果需要数据聚合,group形式的为rdd.map(x=>(x.chatAt(0),x)).groupbyKey().mapValues((x=>x ...

  5. 关于NGINX的502的装逼打怪之路

    写日志之前先copy一段nginx502的原因,从某网看到如下,然而这并不是重点,最重要还是看博主手敲的东西. 一.NGINX 502错误排查 NGINX 502 Bad Gateway错误是Fast ...

  6. System.Drawing.Color

    System.Drawing.Color color=Color.Red; System.Drawing.Color color=Color.FromArgb(,,); System.Drawing. ...

  7. twitter点赞动画详解

    今天在微博上看到@过气网红一丝 的一篇微博,codepen上贴出了twitter点赞那个动画效果的源码,地址 http://codepen.io/yisi/pen/LpXVJb .我看了下效果很好看, ...

  8. easyUI datagrid中 checkbox 各属性和事件

    DataGrid其中与选择,勾选相关 DataGrid属性:singleSelect boolean 如果为true,则只允许选择一行. false  ctrlSelect boolean 在启用多行 ...

  9. [DFNews] Touch ID不是神话,指模依旧能搞定。

    扫描制作翻模,使用含石墨硅胶压膜,前者复制指纹纹路,后者欺骗活体检测.

  10. struts的标签库出现Failed to load or instantiate TagExtraInfo class

    使用struts的标签库出现Failed to load or instantiate TagExtraInfo class 最近在使用struts标签库的时候,在eclipse开发环境中是正常的,放 ...