社区
网络编程
帖子详情
如何释放SOCKET端口
见习学术士
2008-10-07 08:33:33
有两个线程:发送消息和发送文件线程
我需要向客户端发送完消息后接着启用发送文件线程。
现在问题事发送完消息后,再发送文件线程中connect不了客户端。所以我想可能是发送完消息后没有释放端口(我用sock.Close()关闭得)。
请大家指点一哈。
...全文
844
14
打赏
收藏
如何释放SOCKET端口
有两个线程:发送消息和发送文件线程 我需要向客户端发送完消息后接着启用发送文件线程。 现在问题事发送完消息后,再发送文件线程中connect不了客户端。所以我想可能是发送完消息后没有释放端口(我用sock.Close()关闭得)。 请大家指点一哈。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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()看下错误代码,你说的情况一般情况下不会碰到,至少我没有碰到过...
C#高性能大容量
SOCKET
并发完成
端口
例子(有C#客户端)完整实例源码
例子主要包括
Socket
AsyncEventArgs通讯封装、服务端实现日志查看、SCOKET列表、上传、下载、远程文件流、吞吐量协议,用于测试
Socket
AsyncEventArgs的性能和压力,最大连接数支持65535个长连接,最高命令交互速度达到250MB/S(使用的是127.0.0.1的方式,相当于千兆网卡1Gb=125MB/S两倍的吞吐量)。服务端用C#编写,并使用log4net作为日志模块; 同时支持65536个连接,网络吞吐量可以达到400M。
C#高性能大容量
SOCKET
并发完成
端口
例子
例子主要包括
Socket
AsyncEventArgs通讯封装、服务端实现日志查看、SCOKET列表、上传、下载、远程文件流、吞吐量协议,用于测试
Socket
AsyncEventArgs的性能和压力,最大连接数支持65535个长连接,最高命令交互速度达到250MB/S(使用的是127.0.0.1的方式,相当于千兆网卡1Gb=125MB/S两倍的吞吐量)。服务端用C#编写,并使用log4net作为日志模块; 同时支持65536个连接,网络吞吐量可以达到400M。
C#
Socket
TCP和UDP报文及
端口
测试工具的开发(提供源码)万能超好测试工具
C#
Socket
TCP和UDP报文及
端口
测试工具的开发(提供源码)万能超好测试工具
同时打开多
端口
的通信程序
采用
Socket
通讯协议进行 一个可以同时打开多
端口
客户端及服务端通信的 自定义命令解析试验程序。 里面抱含了一个原生数据库ADO操作类,初数sockt及ADO数据库操作者很值得一看。
socket
结束后如何立刻
释放
端口
结束一个应用之后,用netstat查看应用启动的
socket
端口
还在TIME_WAIT状态。 也可以用 lsof -i:
端口
号查看
端口
被哪个进程占用。 原因是 正常情况下:TCP断开连接的4次挥手中处于TIME_WAIT方需要等待一段时间,已防止最后的ACK分解丢失,这样导致服务器端的
端口
也仍然处于使用中。 解决方法: 设置setsockopt的SO_REUSEADDR选项,就
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章