gpt4 book ai didi

sockets - 立即关闭和重新开放港口

转载 作者:行者123 更新时间:2023-12-03 12:04:16 26 4
gpt4 key购买 nike

在为套接字编程时,我遇到了对 使用的疑问。 setsocketopt() .如果我们提供

setsockopt( socket_no, SOL_SOCKET,SO_REUSEADDR , (char *) &optval, (socklength) sizeof( optval ) );//To reuse addr

其次是同一个套接字的另一个套接字选项,
setsockopt( socket_no, IPPROTO_IPV6,IPV6_V6ONLY , (char *) &optval, (socklength) sizeof( optval ) );//To use only IPv6

(1)是否重新设置socket选项,去掉已经设置的reuse address选项?

在少数情况下,需要立即关闭并重新打开静态端口,不要有任何延迟。

(2)立即关闭和重新打开一个端口会导致问题吗?

(3)如果立即关闭和重新打开一个端口会导致问题,是否可以在套接字选项中使用 SO_REUSEPORT/SO_REUSEADDR 来避免。因为它克服了 TCP 协议(protocol)设置的 time_wait。还是有一些替代方法可以克服这个问题?

最佳答案

(1)Does setting socket option again, removes the reuse address option which is set already ?



不,每个套接字选项都是独立的。

(2)Does closing and reopening a port immediately causes problem ?



不,除非最近至少有一个 TCP 连接进出该端口。

(3)If closing and reopening a port immediately causes problem, can it be avoided using SO_REUSEPORT/SO_REUSEADDR in socket option. As it overcomes time_wait set by TCP protocol. Or is there some alternative to overcome this problem ?



它对 time_wait 没有影响。它只是让您立即重新打开端口。现有连接不受影响并继续正常超时,它只是不会阻止您重新打开端口。

关于sockets - 立即关闭和重新开放港口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37271517/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com