当套接字无效时

时间:2014-07-31 03:27:25

标签: c linux sockets

我有Tcp服务器。我使用linux c api socket(),bind()listen()select()accept()等待客户端连接。

当我拉动并插入网络电缆时,选择没有错误返回,它通常可以等待客户端连接等等。

当我更改我的IP地址时使用

 ifconfig eth0 xxx.xxx.xxx.xx netmask 255.255.255.0

(在同一段),select没有错误返回,然后客户端使用这个新的ip连接我的服务器,它也是成功的

何时应该重新启动服务器?

ps:bind()使用INADDR_ANY

1 个答案:

答案 0 :(得分:1)

侦听套接字在关闭前保持有效。只要绑定到INADDR_ANY,,任何人都可以连接到它。

但是如果你将它绑定到一个特定的IP地址并且该IP地址消失了,那么没有人能够连接到套接字:但是套接字本身仍然有效,并且不会报告任何会导致你得出结论的错误条件除此以外。解决方案:不要。