6.1.4 Socket通信流程
2025年09月26日
6.1.4 Socket通信流程
Socket是“打开—读/写—关闭”模式的实现,以使用TCP协议通信的Socket为例,其交互流程大概是这样子的,如图6.6所示。
图6.6 Socket的tcp交互流程
服务器根据地址类型(ipv4,ipv6)、Socket类型、协议创建Socket。
服务器为Socket绑定ip地址和端口号。
服务器Socket监听端口号请求,随时准备接收客户端发来的连接,这时候服务器的Socket并没有被打开。
客户端创建Socket:
(1)客户端打开Socket,根据服务器ip地址和端口号试图连接服务器Socket。
(2)服务器Socket接收到客户端Socket请求,被动打开,开始接收客户端请求,直到客户端返回连接信息。这时候Socket进入阻塞状态,所谓阻塞即accept()方法一直到客户端返回连接信息后才返回,开始接收下一个客户端谅解请求。
(3)客户端连接成功,向服务器发送连接状态信息。
(4)服务器accept方法返回,连接成功。
(5)客户端向Socket写入信息。
(6)服务器读取信息。
(7)客户端关闭。
(8)服务器端关闭。