如何复用time_wait状态的端口

x_xy 2003-07-01 08:26:28
虽然setsocketopt(?好象是这个,手头没书)可以设置SOL_REUSEADD(?)的选项,但是在我的实际使用中,当我在server和client端都正常执行了closesocket后,重新建立连接时,client端的端口就在很长一端时间内不能再使用,不管有没有设置过opt都一样的结果。
但是如果client端非正常退出(比如调试时候突然中断),没有执行closesocket,则该端口将可以正常的被再次使用。
请问这是怎么回事?请高手指教。
...全文
119 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
x_xy 2003-07-02
  • 打赏
  • 举报
回复
OK,谢谢,明天试试看。
新公司不能上网,真是郁闷痛苦。
huangbeyond 2003-07-01
  • 打赏
  • 举报
回复
//笔误一个
setsockopt(s,SOL_SOCKET,SO_LINGER,(char *)&lig,iLen);
huangbeyond 2003-07-01
  • 打赏
  • 举报
回复
struct linger lig;
int iLen;
lig.l_onoff=1;
lig.l_linger=0;
iLen=sizeof(struct linger);
setsockopt(s,SOL_SOCKET,SO_LINGER,(char *)&lig,i);
closesocket(s);


如果这样还不行,可以使用WSACleanup();
huangbeyond 2003-07-01
  • 打赏
  • 举报
回复
使用强制关闭SOCKET的方式,
就可以立刻结束time_wait状态

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧