在socket中
//设定地址
   sockaddr_in serv;
    serv.sin_addr.s_addr=htonl(INADDR_ANY); //如果将sin_addr设置为INADDR_ANY,则表示所有的IP地址,也即所有的计算机。
INADDR_ANY表示所有的计算机。请问这里是指所有的计算机可以连过来,还是指设定任何的计算机。谢谢!!

解决方案 »

  1.   

    INADDR_ANY,表示机器上的所用网络地址比如你的机器上有两张网卡,那么到达这两张网卡的数据,你的socket都可以得到通知
      

  2.   

    写这个是为了方便以后移植,比如你现在在1.1.1.1上正常,以后在1.1.1.2也会正常,但是写成
    inet_addr("1.1.1.1")就没这么方便了,以后还要该成inet_addr("1.1.1.2");
      

  3.   

    是用于多IP机器上比如你的机器有三个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端口这时其他机器只有connect 192.168.1.1:100才能成功。
    connect 202.202.202.202:100和connect 61.1.2.3:100都会失败。如果serv.sin_addr.s_addr=htonl(INADDR_ANY); 的话,无论连接哪个ip都可以连上的。
      

  4.   

    创建PORT=6000 SOCKET时,以0.0.0.0为IP地址创建6000的端口号。