1

我正在编写一个 TCP 并发服务器,它将分叉一个子进程来处理每个新连接。假设ClientA正在与ChildA交互,而服务器仍在同一端口上侦听。如果我们用 SIGINT 信号杀死服务器ClientAChildA会继续交互。

因此,在这种情况下,如果我重新启动服务器,它显然会引发Address already in use函数bind调用。

这个问题的所有可能解决方案是什么,通常遵循哪一个?

4

2 回答 2

2

2个选项。

  1. kill 当服务器被杀死时ChildA进程。

  2. close完成后fd用于listen/bindChildAfork

于 2013-02-19T03:16:15.153 回答
1

SO_REUSEADDR在绑定之前在侦听套接字上设置套接字选项。

于 2013-02-19T03:16:03.877 回答