当前位置: 技术问答>linux和unix
为什么 我用socket绑定一个端口, 释放以后,短期内都没法再绑定这个端口了?
来源: 互联网 发布时间:2016-02-20
本文导语: 要等很久,通常几分钟。。 谢谢。。。。。 | bind前用setsockopt 把SO_REUSEADDR设上看看. | 如果是tcp协议的话是因为刚释放完会处于TIME_WAIT状态,所以刚释放完在去绑定相同的端口是没法绑...
要等很久,通常几分钟。。
谢谢。。。。。
谢谢。。。。。
|
bind前用setsockopt
把SO_REUSEADDR设上看看.
把SO_REUSEADDR设上看看.
|
如果是tcp协议的话是因为刚释放完会处于TIME_WAIT状态,所以刚释放完在去绑定相同的端口是没法绑定的,解决方法同楼上所说。如果使用udp或sctp就不会存在这种情况。
|
man 下一这个函数 setsockopt;
大致用法是:
setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,&opt,&len);
sockfd是你socket()后正确的返回值,opt,len,不太重要,你man下就知道了。主要的是设置:SOL_SOCKET,SO_REUSEADDR
大致用法是:
setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,&opt,&len);
sockfd是你socket()后正确的返回值,opt,len,不太重要,你man下就知道了。主要的是设置:SOL_SOCKET,SO_REUSEADDR