windows与linux平台双协议栈socket编程

interoperability between IPv4 and IPv6 clients and servers

这个表摘自《Unix Network Programming》,我以为它适用与所有平台,其实不然。现有以下假设:

  1. 同时与IPv4和IPv6地址类型的远程主机通讯。
  2. 本地主机安装了双协议栈。
  3. 只能用一个端口。

那么在不同平台下则编程策略不同:

  1. linux下遵循上表中的规则,只有在本地IPv6地址和端口绑定socket,即可与远程IPv4或IPv6主机通讯,操作系统会选择适当协议。
  2. windows下则需要绑定两个socket,分别创建IPv4地址族的socket绑定到本地IPv4地址和端口和创建IPv6地址族socket绑定到本地IPv6地址和端口。

上述中的地址均为通配地址。如果在Linux下绑定两个socket到IPv4和IPv6地址的同一端口,则在第二次绑定时会报错。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值