社区
网络编程
帖子详情
socket如何确定bind成功/或者说如何检测端口是否占用
zhousitiaoda
2016-06-30 08:03:37
问题描述:A.exe已经监听了某个端口,B.exe再调用bind去监听,居然返回0(表示成功),但收不到任何连接请求,猜测都连接到A那去了。
问:有没有方法可以判断bind真正成功了。或者说给定一个端口,能否判断当前是否已经占用
最搓的方法是看是否能connect成功,虽然比较准确,但太搓了。。
...全文
711
6
打赏
收藏
socket如何确定bind成功/或者说如何检测端口是否占用
问题描述:A.exe已经监听了某个端口,B.exe再调用bind去监听,居然返回0(表示成功),但收不到任何连接请求,猜测都连接到A那去了。 问:有没有方法可以判断bind真正成功了。或者说给定一个端口,能否判断当前是否已经占用 最搓的方法是看是否能connect成功,虽然比较准确,但太搓了。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zgl7903
2016-07-19
打赏
举报
回复
用API可以用
GetTcpTable
GetTcp6Table
GetUdpTable
GetUdp6Table
不过个人感觉 可能 先 connect 测试一下 也是不错的选择, 至少很简单
shenyi0106
2016-07-19
打赏
举报
回复
为啥不判断返回值,有返回值结合GetLastError就可以解决了
Eleven
2016-07-19
打赏
举报
回复
oyljerry
2016-07-19
打赏
举报
回复
基本上就是根据返回的错误码来判断。
xian_wwq
2016-07-01
打赏
举报
回复
思路差不多,也是再bind一次端口,看是否成功
zhousitiaoda
2016-06-30
打赏
举报
回复
1
A进程占用端口,B进程bind却成功,大概找到原因了,估计是A进程使用了SO_REUSEADDR,这种情况下只要在B进程bind前设置SO_EXCLUSIVEADDRUSE属性,再bind就会失败,错误码是端口占用。 虽然问题看似解决了,但还是想请教下大家有什么方法判断
Socket
编程系列之5:Boost开发及ASIO异步网络聊天室编程实
Socket
编程系列初步计划:
Socket
编程系列之1:Linux-API网络编程入门实战
Socket
编程系列之2:Windows-API网络编程入门实战
Socket
编程系列之3:Libevent网络编程入门实战
Socket
编程系列之4:Libcurl网络编程入门实战...
socket
通信关于
bind
端口
和IP
socket
通信关于
bind
端口
和IP https://blog.csdn.net/windyf2013/article/details/79738287 个人分类:
socket
c 结论: 1、采用TCP通信时,客户端不需要
bind
()他自己的IP和
端口
号,而服务器必须要
bind
()自己本机的...
Socket
通信
bind
错误
原因在于非正常退出时,没有进行close,导致
端口
和地址被
占用
。解决方法是利用setsockopt()函数将
Socket
设置为复用。 在
bind
函数之前使用setsockopt函数,如下即可解决
bind
错误的情况。 BOOL bReuseaddr = TRUE; ...
socket
通信关于
bind
那点事
2、若采用UDP通信时(这里是有客户端和服务器之分才这么说的,若是指定特定
端口
的UDP对等通信则不一样了),客户端也可以不需要
bind
()他自己的IP和
端口
号,而服务器需要
bind
自己IP地址和
端口
号;原因:1、因为...
Socket
bind
failed: [730048]异常的处理
Socket
bind
failed: [730048]异常的处理 在本例中假定8080
端口
被其他程序
占用
。 出现此异常说明,Tomcat的运行
端口
被其他程序
占用
了。只要修改Tomcat
端口
号或者将
占用
该
端口
的进程结束掉就可以了。 方法1.修改...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章