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