Socket连接的流程

套接字是支持TCP/IP协议网络通信的基本操作单元,可以将套接字看作不同主机间的进程双向通信的端点,它构成了单个主机内及整个网络间的编程界面。套接字存在于通信域中,通信域是为了处理
一般的线程通过套接字通信而引进的一种抽象概念。套接字通常会和同一个域中的套接字交换数据(数据交换也可能会穿越域的界限,但这时一定要执行某种解释程序)。各种进程使用这个相同的域用
Internet协议来进行相互之间的通信。

下图展示的是一套基本的Socket通信流程

Socket连接的流程_第1张图片

Socket通信的基本流程具体步骤如下所示。
1)开启一个连接之前,需要先完成Socket和Bind两个步骤。Socket是新建一个套接字,Bind指定套接字的IP和端口(客户端在调用Connect时会由系统分配端口,因此可以省去Bind)。
2)服务端通过Listen开启监听,等待客户端接入。
3)客户端通过Connect连接服务器,服务端通过Accept接收客户端连接。在connect-accept过程中,操作系统将会进行三次握手。
4)客户端和服务端通过write和read发送和接收数据,操作系统将会完成TCP数据的确认、重发等步骤。
5)通过close关闭连接,操作系统会进行四次挥手。

System.Net.Sockets命名空间的Socket类为网络通信提供了一套丰富的方法和属性,表6-6和表6-7列举了Socket类的一些常用方法和属性。

Socket连接的流程_第2张图片

Socket连接的流程_第3张图片

你可能感兴趣的:(Socket)