什么是套接字(Socket)

应用层经过传输层进行数据通讯时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP链接或多个应用程序进程可能须要 经过同一个TCP协议端口传输数据。为了区别不一样的应用程序进程和链接,许多计算机操做系统为应用程序与TCP/IP协议交互提供了称为套接字 (Socket)的接口,区分不一样应用程序进程间的网络通讯和链接。
生成套接字,主要有3个参数:通讯的目的IP地址、使用的传输 层协议(TCP或UDP)和使用的端口号。Socket原意是“插座”。经过将这3个参数结合起来,与一个“插座”Socket绑定,应用层就能够和传输 层经过套接字接口,区分来自不一样应用程序进程或网络链接的通讯,实现数据传输的并发服务。
 
Socket能够当作在两个程序进行通信链接中的一个端点,一个程序将一段信息写入Socket中,该Socket将这段信息发送给另一个Socket中,使这段信息能传送到其余程序中。如图1:
Host A上的程序A将一段信息写入Socket中,Socket的内容被Host A的网络管理软件访问,并将这段信息经过Host A的网络接口卡发送到Host B,Host B的网络接口卡接收到这段信息后,传送给Host B的网络管理软件,网络管理软件将这段信息保存在Host B的Socket中,而后程序B才能在Socket中阅读这段信息。
 
要经过互联网进行通讯,至少须要一对套接字,一个运行于客户机端,称之为ClientSocket,另外一个运行于服务器端,称之为serverSocket。     
根据链接启动的方式以及本地套接字要链接的目标,套接字之间的链接过程能够分为三个步骤:服务器监听,客户端请求,链接确认。     
服务器监听:是服务器端套接字并不定位具体的客户端套接字,而是处于等待链接的状态,实时监控网络状态。
客户端请求:是指由客户端的套接字提出链接请求,要链接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要链接的服务器的套接字,指出服务器端套接字的地址和端口号,而后就向服务器端套接字提出链接请求。
连 接确认:是指当服务器端套接字监听到或者说接收到客户端套接字的链接请求,它就响应客户端套接字的请求,创建一个新的线程,把服务器端套接字的描述发给客 户端,一旦客户端确认了此描述,链接就创建好了。而服务器端套接字继续处于监听状态,继续接收其余客户端套接字的链接请求。
相关文章
相关标签/搜索