在上期的socket套接字的使用详解中(socket套接字的使用详解)最后实现的TCP服务器只能处理一个客户端的请求发送,当有其他客户端请求连接时会被阻塞。为了能同时处理多个客户端的连接请求,本期使用多进程的方式来解决。
解决方案步骤总结
-
初始化服务器
- 创建监听套接字(
socket
)。 - 绑定套接字到指定地址和端口(
bind
)。 - 开始监听连接请求(
listen
)。
- 创建监听套接字(
-
等待连接
- 进入一个无限循环,等待并接受客户端连接(
accept
)。
- 进入一个无限循环,等待并接受客户端连接(
-
创建子进程
- 每当接受到一个新的客户端连接,创建一个子进程(
fork
)。 - 子进程负责与客户端通信,处理请求并发送响应。
- 每当接受到一个新的客户端连接,创建一个子进程(
-
父进程继续监听
- 父进程关闭与客户端通信的套接字,继续监听新的连接请求。
-
处理子进程结束信号(可选)
- 注册信号处理函数,处理子进程结束信号,避免僵尸进程。