c – IPv6绑定失败
发布时间:2020-12-13 19:36:48 所属栏目:Linux 来源:网络整理
导读:我有一个服务器实现,我需要2个独立的套接字 1个IPv4套接字套接字监听特定的IPv4地址和服务器端口X,以及一个IPv6套接字监听特定的IPv6地址和相同的服务器端口X.IPv4和IPv6地址打开相同的界面. memset(sin,sizeof(sin)); sin.sin_family = AF_INET; sin.sin_ad
我有一个服务器实现,我需要2个独立的套接字 – 1个IPv4套接字套接字监听特定的IPv4地址和服务器端口X,以及一个IPv6套接字监听特定的IPv6地址和相同的服务器端口X.IPv4和IPv6地址打开相同的界面.
我正在使用evconnlistener_new_bind创建ipv4套接字并绑定到它.
当我将fd绑定到特定的ipv6地址时,我会间歇地看到绑定失败. 绑定v6失败sin6 3ffe :: a00:513 – 错误99 – 无法分配请求的地址 我尝试了gdb,但每次我gdb,绑定成功. 我不确定为什么我会看到这个问题.有人可以帮忙吗? 最佳答案
默认情况下,在套接字绑定到TCP端口后,端口在套接字关闭时保留一分钟 – 这称为TCP TIME_WAIT状态. TIME_WAIT避免了一些可能导致数据损坏的竞争条件,但通常可以安全地忽略服务器端的TIME_WAIT.
这可以通过设置SO_REUSEADDR套接字选项来完成:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |