INADDR_ANY


INADDR_ANY 就是指定地址为 0.0.0.0 的地址,这个地址事实上表示不确定地址, 或" 所有地址 "、"任意地址"。

如果服务器有多个网卡(每个网卡上有不同的IP地址),bind INADDR_ANY, 服务器程序则在0.0.0.0这个地址上进行侦听。告诉操作系统:"我需要在yyyy端口上侦听,所以不管是哪个网卡/哪个IP地址接收到发送到这个端口的数据,都是我处理的。"

# netstat -nap |grep ngin

tcp        0       0 0.0.0.0:8012            0.0.0.0:*               LISTEN      4462/nginx.conf    

unix  3      [ ]         STREAM     CONNECTED     54765941 4462/nginx.conf    

unix  3      [ ]         STREAM     CONNECTED     54765940 4462/nginx.conf    

unix  2      [ ]         DGRAM                    54603302 4462/nginx.conf

FAQ:

为什么不会接收到重复的数据包呢?

答:因为客户端只向你的服务器上的唯一一个IP地址发送数据了。

为什么不会重复发送数据包呢?

答:因为发送数据包的路由(路径)是唯一的。如果服务器不知道在发送数据的时候应该向哪个地址发送数据,那么数据就会被发送到"默认网关"上。

如何选择发送数据的路径呢?

答:依照路由表的要求发送。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值