与INADDR_ANY绑定

时间:2011-09-30 07:53:37

标签: linux sockets bind

如果我将套接字绑定到INADDR_ANY,我知道它将接受服务器上配置的任何IP上的传入连接。假设我在进行bind()调用时配置了1个IP,然后配置了新的IP。将bind()接受发起到新配置的IP的连接,还是仅对调用bind()时存在的IP有效?

2 个答案:

答案 0 :(得分:11)

在Linux上绑定到INADDR_ANY时,套接字将保持绑定到0.0.0.0并接受与任何本地IP地址的连接,现在无论如何更改。只有在建立TCP连接时,单个连接才会绑定到它所接收的IP地址。其他连接仍可在任何地址收到。

答案 1 :(得分:2)

是的,它将接受新创建或新配置的接口上的连接。

您可以通过创建虚拟界面自行尝试:

/sbin/ifconfig dummy0 172.17.42.99 netmask 255.255.255.255

或某事;然后尝试连接到该IP。