如何解决已在使用中的TCP服务器地址错误

时间:2013-02-19 03:10:52

标签: c networking tcp network-programming

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

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

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

2 个答案:

答案 0 :(得分:2)

2个选项。

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

  2. 完成close后,{li>

    fd listen用于 ChildA 中的bind / fork {{1}}

答案 1 :(得分:1)

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