套接字

定义

  套接字(Socket)实质上就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,为应用层进程利网络协议交换数据提供了相应机制。套接字出于承上启下的作用,向上连接应用进程,向下则连接网络协议栈,不仅是应用程序通过网络协议进行通信的接口,也是应用程序与网络协议栈进行交互的接口。

 

引入

  套接字最初是为了方便开发网络应用程序而被美国伯克利大学在UNIX上推出的一种应用程序访问通信协议的操作系统的调用接字,后续被引入到Windows等其他操作系统之中,从而成为了开发网络应用程序的有效工具。

套接字存在于通信区域(地址族),主要用于将通过套接字通信的进程的共有性综合。套接字一般只与同一区域内的套接字交换数据,而Windows Socket只支持一个通信区域——AF_INET国际网区域,使用网际协议族通信的进程使用该域。

 

简介

  套接字是通信的基石,是支持TCP/IP的路通信的基本操作单元,可以将套接字看作两个网络应用程序进行通信是,各自通信连接中的端点,其构成了单个主机及整个网络间的编程界面。

  套接字是网络环境中进程间通信的API(应用程序编程接口),也是可以被命名和寻址的通信端点,还是由IP地址和端口号结合以提供向应用层进程传送数据包的机制。

 

表示方法

  套接字的表示方法是点分十进制的IP地址后加上端口号,两者之间用冒号或逗号分隔开,即:

  套接字(Socket):(IP地址:端口号)

  例如:IP地址为192.168.112.20,端口号为23,则可得到套接字为(192.168.112.20:23)

 

主要类型

  套接字类型主要为流式套接字(SOCK_STREAM)、数据报套接字(SOCK_DGRAM)、原始套接字(SOCK_RAW)三种类型,三种类型依次针对于TCP协议、UDP协议和其他协议。

 

工作流程

  通过互联网进行通信时,至少需要一对套接字,分别运行于客户端与服务器端,依次为Client Socket、Server Socket。而套接字之间进行连接的过程主要可以划分为服务器监听、客户端请求和确认连接三个部分,其具体连接步骤如下所示:

 

 

 

主要特点

  针对于不同类型的套接字存在不同的特点,此处主要将套接字划分为有连接服务和无连接服务两个部分。

posted @ 2022-10-12 16:29  Auion  阅读(1248)  评论(0编辑  收藏  举报