首页 > 学院 > 操作系统 > 正文

ipv4、ipv6的socket同时监听“bind: Address already in use”的解决方法

2024-06-28 13:23:53
字体:
来源:转载
供稿:网友
ipv4、ipv6的socket同时监听“bind: Address already in use”的解决方法

创建ipv4和ipv6的socket,同时监听某个端口的ipv4和ipv6报文,运行时bind函数执行失败,提示“bind: Address already in use”。原因:ipv6的socket默认情况下也会接收ipv4地址的报文,不同的socket不能监听同样的ip同样的端口。方法:设置ipv6的socket只接收ipv6地址的报文

int on = 1;if (setsockopt(fd_v6, IPPROTO_IPV6, IPV6_V6ONLY, &on, sizeof(on)) < 0){    perror("setsockopt");    return -1;}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表