Winsock绑定地址“INADDR_ANY”澄清

时间:2014-02-08 00:54:54

标签: sockets networking winsock

当我使用INADDR_ANY指定要绑定到套接字的IP地址时,后者会监听端口,如下所示:

sockaddr_in sockAddr;

sockAddr.sin_family = AF_INET;
sockAddr.sin_port = htons(80);
sockAddr.sin_addr.S_un.S_addr = INADDR_ANY; // use default

这个套接字结构是否允许外部,内部和环回IP地址连接到我?

我不希望通过将我的计算机外部地址(即:122.215.214.3)替换为INADDR_ANY来限制可与我通信的IP地址,因为内部IP无法连接。

我想知道INADDR_ANY是否会绑定我所有3台计算机的IP地址(外部,内部,环回)。

1 个答案:

答案 0 :(得分:4)

绑定侦听套接字时,INADDR_ANY允许任何本地 IPv4地址上的入站连接,该地址直接属于运行侦听套接字的计算机,其中包括环回地址。但是,您无法绑定到计算机外部的外部 IP地址,例如网络路由器的公共IP。路由器必须配置为将来自公共IP的传入连接转发到分配给它可以绑定的侦听机器的专用LAN IP。