我想处理多个客户端请求。
我应该listen()
只打一次电话并accept()
针对每个新的客户请求打电话吗?
您可能想查看 DJ Bernstein 的 tcpserver(参见http://cr.yp.to/ucspi-tcp/tcpserver.html)。基本上,您可以简单地在 tcpserver 下运行您的 C 程序,tcpserver 将处理所有事情,包括设置套接字、列出您正在使用的任何端口上的传入连接等。当传入连接到达您指定的端口时, tcpserver 将生成程序的一个实例,并将来自客户端的传入信息通过管道传输到程序的 STDIN,并将来自程序的 STDOUT 的传出信息传输回客户端。这样,您可以专注于程序的核心逻辑(并简单地读取/写入 stdout/stdin),并让 tcpserver 处理所有繁重的工作,例如套接字等。