INADDR_ANY的含义

        在一些socket通信的服务器程序中我们会看到在服务器bind IP地址和端口号时,我们不是bind明确的IP地址(如222.20.79.150),而是使用INADDR_ANY,这会让我们产生一个疑问,就是如果服务器程序不使用明确的IP地址,那么客户端该如何连接服务器呢? 下面对这个问题进行解答。

       INARRD_ANY是用于多网卡的机器上的,多网卡就会有多个IP地址。比如你的机器有3个IP:192.168.1.1、202.202.202.202和61.1.2.3。如果设置serv.sin_addr.s_addr=inet_addr("192.168.1.1");然后监听100端口,这时其他机器只有连接到192.168.1.1才能成功;连接202.202.202.202:100或61.1.2.3:100都会失败。如果设置serv.sin_addr.s_addr=htonl(INADDR_ANY);的话,无论连接哪个IP都可以连接上。

 

你可能感兴趣的:(网络编程,网络编程,INADDR_ANY)