免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: yulc
打印 上一主题 下一主题

如何探测目标主机的udp端口是否在监听? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2007-01-29 18:22 |只看该作者
有那么难吗?
往udp端口发送数据,如果失败,会得到路由不可到达的错误。多发几次,排除网络故障,不就可以准确的判断了么。

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
12 [报告]
发表于 2007-01-29 20:52 |只看该作者
从一般性来说,没有办法

论坛徽章:
0
13 [报告]
发表于 2007-01-30 11:49 |只看该作者
langue 说的方法,我想过.........
但这要求修改接收端的代码, 要求它分析每个收到的包,看是否是请求应答包,
类似这样:

if(packet.tag == "request"   )
    doReply();   // 回复发送端
else
   doDecodeAudio();  //  解音频码...

单是加这几行,唉, 项目有项目的难处呀...


另外, 楼上某位说的:"往udp端口发送数据,如果失败,会得到路由不可到达的错误。"
这个我想是你随口说的吧...   

[ 本帖最后由 yulc 于 2007-1-30 11:52 编辑 ]

论坛徽章:
0
14 [报告]
发表于 2007-01-30 12:50 |只看该作者
如果你的项目做得好的话,重载doDecodeAudio,如果你的项目做得不好的化,当我没说.

论坛徽章:
0
15 [报告]
发表于 2007-01-30 12:56 |只看该作者
如果你的程序不需要马上知道对端端口是否还健在,可以用另外的一套程序来检测对端端口是否存在,然后告诉sender(进程间通讯).如果需要及时知道对端端口是否健在,采用你现在考虑的办法,或者让对端计算机主动报告自己是否健在.
但愿对你有帮助.

论坛徽章:
0
16 [报告]
发表于 2007-01-30 12:58 |只看该作者
如果你不能动对端的配置和代码,那么在主机端ping它,能防止机器死掉,但不能防止监听程序死掉

论坛徽章:
0
17 [报告]
发表于 2007-01-30 12:59 |只看该作者
留名观察...
如果没办法让A知道,能不能让B不出现不监听或尽量减少不监听的概率达到最小影响呢.

论坛徽章:
0
18 [报告]
发表于 2007-01-30 13:05 |只看该作者
原帖由 yulc 于 2007-1-30 11:49 发表
langue 说的方法,我想过.........
但这要求修改接收端的代码, 要求它分析每个收到的包,看是否是请求应答包,
类似这样:

if(packet.tag == "request"   )
    doReply();   // 回复发送端
else
  ...



不知客户端如果收到特殊构造的应用级别的异常包是否会有点反应?
这个包要让客户端感觉到它有必要重新联系你。

如果情况绝对是: 除非她联系你,否则你不知道她的存在,
那你也就不必太在意她的感受了:或者不停的发,直到她显式取消,或者,设个超时,超过时间她不联系你就断开她。

论坛徽章:
0
19 [报告]
发表于 2007-01-30 14:20 |只看该作者
最好用TCP协议嘛,心跳

论坛徽章:
0
20 [报告]
发表于 2007-01-30 16:59 |只看该作者
很简单的问题
根据ICMP差错报文类型为目地不可达报文来获得对方的状态
如果你发送udp数据报的话如果对方端口没有和相应的进程联系起来的话就会产生一个端口不可达的ICMP差错
你可以接收ICMP报文来做判断两个地方也就是返回ICMP差错报文包涵的差错数据报头部一般没有ip选项就是28个字(20+8二十字节IP头部加上8字节IP后面部份如果你用的是tcp那就是tcp头部8个字节udp一样)
第一处是差错ip头部的目的地址是否和你发送的目的一致第二处是头部后面8字节一般是tcp或者udp这里面前两个是源端口和目的端口判断目地端口是否和你发送里目的端口一至如果两个都相同那就是对方端口不存在(前提是必须为端口不可达错误对这两个判断才有行如果机不存在的话那肯定没必要去做这些判断)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP