怎样关闭SOCKET并释放端口?

jinggangshi 2008-08-06 12:35:30
我用SOCKET做FTP客户端,采用PORT模式,每次LIST都得重建数据通道(不知道怎样才能重用连接),原有的数据通道关闭后不能立即释放所占用的端口,我只能开新的端口,而且我延迟后也不能释放,这就存在资源不能有效利用且可能耗尽资源的情况,显然不合理,所以请做过FTP数据通道的朋友指点一个端口释放方面的做法。
另能谈谈端口复用或连接复用方面的做法也非常需要。
先谢谢大家。
...全文
2233 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
纪飞 Jackie 2011-01-05
  • 打赏
  • 举报
回复
How to release the port of TCP Client immediately when the connection is disconnect with the TCP server. - TCP 客户端与 TCP 服务器断开连接后,如何立刻释放端口

http://blog.csdn.net/HackerJLY/archive/2011/01/05/6116857.aspx
yidongliange4 2010-09-16
  • 打赏
  • 举报
回复
我是同样问题,顶上
swhzp 2010-08-25
  • 打赏
  • 举报
回复
由于需求的原因,我也遇到这个问题,兄弟解决了没有?
jinggangshi 2008-08-07
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 stivenjia 的回复:]
DisconnectEx ms有这个貌似能断开链接
不知道他怎么弄得有兴趣的哥们OD一下看看他们怎么做的
[/Quote]
VS2005中没有定义这个函数
jlujasonlee 2008-08-06
  • 打赏
  • 举报
回复
一般情况下调用closesocket(id)就可以关闭socket.并且释放端口
在控制台下用netstat -p TCP命令察看.没有close_wait就说明端口关端了.

端口重用好像是不太安全.没试过.也是在网上看的.
zetian 2008-08-06
  • 打赏
  • 举报
回复
closesocket然后再socket
还没淹死的鱼 2008-08-06
  • 打赏
  • 举报
回复
好像有个超时设置, 把它改小点

没试过
stivenjia 2008-08-06
  • 打赏
  • 举报
回复
DisconnectEx ms有这个貌似能断开链接
不知道他怎么弄得有兴趣的哥们OD一下看看他们怎么做的
jinggangshi 2008-08-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 stivenjia 的回复:]
SO_LINGER 没MSDN真痛苦,我猜可能是这个东西
试验一下吧看样子像
[/Quote]

好象也不行
stivenjia 2008-08-06
  • 打赏
  • 举报
回复
SO_LINGER 没MSDN真痛苦,我猜可能是这个东西
试验一下吧看样子像
jinggangshi 2008-08-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ostrich2fly 的回复:]
占个位置
[/Quote]
欢迎!
jinggangshi 2008-08-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 stivenjia 的回复:]
我也遇到了这个问题shutdown其实也没有断开连接
没发只能closesocket然后再socket
[/Quote]

这样得新开端口,即使closesocket。
总不能因这个问题而耗尽系统端口资源吧
ostrich2fly 2008-08-06
  • 打赏
  • 举报
回复
占个位置
jinggangshi 2008-08-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yayafu 的回复:]
用setsockopt设置SO_REUSEADDR试试
[/Quote]
这都试过,用setsockopt设置SO_REUSEADDR,是可以释放端口,但我再次无法建立数据通道,10004错误,原因没有找到。

stivenjia 2008-08-06
  • 打赏
  • 举报
回复
我也遇到了这个问题shutdown其实也没有断开连接
没发只能closesocket然后再socket
yayafu 2008-08-06
  • 打赏
  • 举报
回复
用setsockopt设置SO_REUSEADDR试试

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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