为了账号安全,请及时绑定邮箱和手机立即绑定

关于socket bind函数是否必须是本机的IP?这个该怎么理解?

关于socket bind函数是否必须是本机的IP?这个该怎么理解?

神不在的星期二 2021-10-13 14:11:27
比如我的机器是192.168.0.22,那么bind函数中的sockaddr.sinaddr是否可以不是192.168.0.22,当然也不是127.0.0.1什么的.能够说明原理最好.谢谢
查看完整描述

2 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

bind的意义是将已经建立的“空白的”socket绑定在网络上让大家在需要时能够找得到。如果不是把socket绑定在自己的机器上,而是另外一台机器,无法想象在实际中将如何运作。我们先假设系统允许这么做,那么当网络上的其他用户请求你的服务时,他们找到的是另外那台机器,但是那台机器还是要设法连到你的本机上才能让你的socket接受请求并提供服务,但这岂不是多此一举?
另外,使用bind并不需要去设定本机IP,只要将地址字段清零,系统就自动实现本机IP的绑定了。

查看完整回答
反对 回复 2021-10-17
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

您好,是的。必须是本机存在的IP地址。另外人家设计这个函数的意图是为了多IP的场景,真正的服务器上,可能存在着多个IP地址,您有可能只在某个指定IP地址上或者全部IP上提供服务,这时候就需要您来设置了。

查看完整回答
反对 回复 2021-10-17
  • 2 回答
  • 0 关注
  • 659 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信