socket
做网络通信的朋友大都对socket这个词不会感到陌生,但是它的中文翻译是叫套接口还是套接字呢,未必大多数朋友能够分清,今天我们就来聊聊socket的中文名称。 socket一词的起源
在组网领域的首次使用是在1970年2月12日发布的文献IETF RFC33中发现的,撰写者为Stephen Carr、Steve Crocker和Vint Cerf。根据美国计算机历史博物馆的记载,Croker写道:"命名空间的元素都可称为套接字接口。一个套接字接口构成一个连接的一端,而一个连接可完全由一对套接字接口规定。"计算机历史博物馆补充道:"这比BSD的套接字接口定义早了大约12年。"
socket 百科怎么说网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。
socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。
Socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,取后一种意思。通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。
来自"UNIX 网络编程 卷一:套接字联网API 第三版" 的说法
socket一词一般认为译为套接口更为准确,其理由如下:
首先,作为网络编程API之一的套接口(sockets,注意这种用法总是采用复数形式,如sockets API, sockets library等),是应用层到传输层或其他协议层的访问接口。
其次,具体使用的套接口是与Unix管道的牟一端类似的东西,我们既可以往这个“口”卸数据,也可以从这个“口”读数据。
最后,套接口函数使用套接口描述字(discriptor)访问具体的套接口,如果把套接口描述字的检查sockfd翻译成“套接字”是合适的。从这个意义上看,一个套接口可以对应多个套接字,因为Unix的描述字可以复制,也可以继承;反过来,一个套接字对应且只对应一个套接口。但是,现在socket广泛被接受的译法是“套接字”。