TCP套接字编程经常使用在客户/服务器编程模型(简称C/S模型)中,C/S模型根据复杂度分为简单的客户/服务器模型和复杂的客户/服务器模型。C/S简单客户/服务器模型是一对一关系,一个服务器端某一时间段内只对应处理一个客户端的请求,迭代服务器模型属于此模型。C/S复杂服务器模型是一对多关系,一个服务器端某一时间段内对应处理多个客户端的请求,并发服务器模型属于此模型。迭代服务器模型和并发服务器模型是socket编程中最常见使用的两种编程模型,图18-5画出两种模型服务端的处理流程。
18-5 迭代服务器&并发服务器图
1. TCP套接字编程模型图
图18-6是TCP套接字编程模型图,画出了客户端与服务端的编程模型和流程。此模型不仅适合迭代服务器,也适合并发服务器,两者实现流程类似,只不过并发服务器接收客户请求(accept)后会fork子进程,由子进程处理客户端的请求。
图18-6 TCP套接字编程模型图
2. TCP编程流程说明
(1) 服务器端编程流程
TCP服务器端编程流程如下:
① 创建套接字;
② 绑定套接字;
③ 设置套接字为监听模式,进入被动接受连接状态;
④ 接受请求,建立连接;
⑤ 读写数据;
⑥ 终止连接