Socket通信流程
Socket是"打开—读/写—关闭"模式的实现,以使用TCP协议通讯的Socket为例,其交互流程:
服务器根据地址类型(ipv4,ipv6)、Socket类型、协议创建Socket
服务器为Socket绑定ip地址和端口号
服务器Socket监听端口号请求,随时准备接收客户端发来的连接,这时候服务器的Socket并没有被打开
客户端创建Socket
客户端打开Socket,根据服务器ip地址和端口号试图连接服务器Socket
服务器Socket接收到客户端Socket请求,被动打开,开始接收客户端请求,直到客户端返回连接信息。这时候Socket进入阻塞状态,所谓阻塞即accept()方法一直到客户端返回连接信息后才返回,开始接收下一个客户端请求
客户端连接成功,向服务器发送连接状态信息
服务器accept方法返回,连接成功
客户端向Socket写入信息
服务器读取信息
客户端关闭
服务器端关闭