我是套接字编程的新手。在编写一个简单的客户机-服务器应用程序时,我观察到我们将服务器绑定到服务器地址结构。
// define the server address
struct sockaddr_in server_address;
server_address.sin_family = AF_INET;
server_address.sin_port = htons(9002);
server_address.sin_addr.s_addr = INADDR_ANY; //focus on this line --- line 4
// bind the socket to our specified IP and port
bind(server_socket, (struct sockaddr*) &server_address, sizeof(server_address));
如代码所示,为什么我们需要第4行?我们知道服务器套接字将绑定到服务器的机器IP(本身)上,它无法绑定到任何其他IP。什么是意义INADDR_ANY
在这方面(或任何其他IP?)?
一台主机可以安装一个以上的网络接口(即一次连接到多个网络),并且每个接口至少有一个IP地址(例如,考虑IP别名)。
INADDR_ANY
将套接字绑定到所有可用接口。否则,必须指定要绑定的特定接口的IP地址。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句