如何释放SOCKET端口

见习学术士 2008-10-07 08:33:33
有两个线程:发送消息和发送文件线程
我需要向客户端发送完消息后接着启用发送文件线程。
现在问题事发送完消息后,再发送文件线程中connect不了客户端。所以我想可能是发送完消息后没有释放端口(我用sock.Close()关闭得)。
请大家指点一哈。
...全文
844 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
HackerJLY 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
gellf 2008-10-10
  • 打赏
  • 举报
回复
你用哪个类来处理socket的?
GetLastError()错误代码数值是多少,“连接已断开”情况太笼统了?
gavinzhu 2008-10-09
  • 打赏
  • 举报
回复
你这个有明显的先后顺序,又不能并发执行为什么不用一个线程呢?
见习学术士 2008-10-09
  • 打赏
  • 举报
回复
是啊,我也这样认为的楼上。
可是我是加在发送消息之前。。
所以就不明白为什么了。。
见习学术士 2008-10-09
  • 打赏
  • 举报
回复
楼上的,因为我传递文件的时候需要发送一些控制命令,而这些控制命令是以消息的形式发送过去的。
我传文件的同时也可以发送消息,就像QQ一样。
见习学术士 2008-10-08
  • 打赏
  • 举报
回复
各位,现在我在发送消息线程前加了Sleep(1000)这样就好了。但是还不明白为什么。。
lhsxsh 2008-10-08
  • 打赏
  • 举报
回复
调用GetLastError()看下错误代码,
kevin0808 2008-10-08
  • 打赏
  • 举报
回复
不懂你说什么?
如果是一个socket的话,当然connect不了,因为它本来就是connect状态
如果是2个socket的话,那是不存在冲突的,那就是你发送文件线程的socket问题
奉海 2008-10-08
  • 打赏
  • 举报
回复
为什么要释放端口呢?发送完消息,接着再发消息呗,
你是不是用的阻塞套节字,发送完消息,客户端被阻塞在那了,
你在发消息过去,客户端没有响应,导致你认为连接不上客户机
Wenxy1 2008-10-08
  • 打赏
  • 举报
回复
检查代码吧!
见习学术士 2008-10-08
  • 打赏
  • 举报
回复
错误是与主机的连接已断开!
gellf 2008-10-08
  • 打赏
  • 举报
回复
我觉得在close后,启动新线程前有个sleep吧?
gellf 2008-10-08
  • 打赏
  • 举报
回复
[Quote=引用楼主 xiaoc1026 的帖子:]
有两个线程:发送消息和发送文件线程
我需要向客户端发送完消息后接着启用发送文件线程。
现在问题事发送完消息后,再发送文件线程中connect不了客户端。所以我想可能是发送完消息后没有释放端口(我用sock.Close()关闭得)。
请大家指点一哈。
[/Quote]

[Quote=引用 7 楼 xiaoc1026 的回复:]
各位,现在我在发送消息线程前加了Sleep(1000)这样就好了。但是还不明白为什么。
[/Quote]

1.我没看明白,发送消息线程和发送文件线程谁先谁后?
2.你是在在先的线程前加Sleep?
gavin1203 2008-10-07
  • 打赏
  • 举报
回复
调用GetLastError()看下错误代码,你说的情况一般情况下不会碰到,至少我没有碰到过...

18,356

社区成员

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

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