相关链接:http://baike.baidu.com/view/13870.htm
socket的英文原义是“孔”或“插座”。作为4BDS UNIX的进程通信机制,取后一种意思。
通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。在Internet上的主机
一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一
个端口上,不同的端口对应于不同的服务。Socket正如其英文原意那样,象一个多孔插座。
一台主机犹如布满各种插座的房间,每个插座有一个编号,有的插座提供220伏交流电,
有的提供110伏交流电,有的则提供有线电视节目。
socket利用
网间网通信设施实现进程通信,但它对通信设施的细节毫不关心,只要通信设施
能提供足够的通信能力,它就满足了。
至此,我们对socket进行了直观的描述。抽象出来,socket实质上提供了 进程通信的端点。
至此,我们对socket进行了直观的描述。抽象出来,socket实质上提供了 进程通信的端点。
进程通信之前,双方首先必须各自创建一个端点,否则是没有办法建立联系并相互通信的。
正如打电话之前,双方必须各自拥有一台电话机一样。
在网间网内部,每一个socket用一个半相关描述:
( 协议,本地地址,本地端口)
一个完整的socket有一个 本地唯一的socket号,由操作系统分配。
一个完整的socket有一个 本地唯一的socket号,由操作系统分配。
用户随机申请一个socket (相当于一个想打电话的人可以在任何一台入网电话上拨号呼叫),
系统为之分配一个socket号;服务器拥有全局公认的 socket ,任何客户都可以向它发出连接
请求和信息请求(相当于一个被呼叫的电话拥有一个呼叫方知道的电话号码)。
SOCKET连接过程
根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:
根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:
服务器监听,客户端请求,连接确认。
服务器监听:是服务器端套接字并不定位具体的客户端套接字,而是 处于等待连接的状态,实时监控网络状态。
客户端请求:是指由客户端的套接字提出连接请求,要连接的目标是 服务器端的套接字。
为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的
地址和
端口号,然后就向服务器端套接字提出连接请求。
连接确认: 是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,它就响应客户端套接字的请求,
连接确认: 是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,它就响应客户端套接字的请求,
建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了。
而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。