首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >立即关闭和重新打开端口

立即关闭和重新打开端口
EN

Stack Overflow用户
提问于 2016-05-17 08:57:15
回答 1查看 726关注 0票数 1

在为套接字编程时,我对setsocketopt().的使用产生了怀疑如果我们提供

代码语言:javascript
复制
setsockopt( socket_no, SOL_SOCKET,SO_REUSEADDR , (char *) &optval, (socklength) sizeof( optval ) );//To reuse addr

后面是同一个套接字的另一个套接字选项,

代码语言:javascript
复制
setsockopt( socket_no, IPPROTO_IPV6,IPV6_V6ONLY , (char *) &optval, (socklength) sizeof( optval ) );//To use only IPv6

(1)是否再次设置套接字选项,删除已设置的重用地址选项?

在少数情况下,需要毫不拖延地立即关闭和重新开放一个静态端口。

(2)关闭和重新开放港口是否立即造成问题?

(3)如果关闭和重新打开端口立即导致问题,那么可以避免在套接字选项中使用SO_REUSEPORT/SO_REUSEADDR。因为它克服了由TCP协议设置的time_wait。还是有别的办法来解决这个问题呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-17 09:02:41

(1)是否再次设置套接字选项,删除已设置的重用地址选项?

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

(2)关闭和重新开放港口是否立即造成问题?

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

(3)如果关闭和重新打开端口立即导致问题,那么可以避免在套接字选项中使用SO_REUSEPORT/SO_REUSEADDR。因为它克服了由TCP协议设置的time_wait。还是有别的办法来解决这个问题呢?

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37271517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档