如何自定义ping返回的数据包? 本帖最后由 VisualEleven 于 2012-10-09 11:41:28 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参考 rfc792 echo类型 可以使用 id 和 seq 作匹配检查,也就是 你发出去 某id 和 seq 对方 echo reply的 也一定是一样的id和seq 。除非对方没有以rfc792为标准 你可以参考《WinSock网络编程经络》第17章Ping程序实现,摘录书中内容如下:================为了计算往返时间,通常在可选数据中保存发送Echo请求的时间戳。ICMP规定:接收者在应答中把标识符、序列号及可选数据返回给发送者。/* ICMP 首部 -- RFC 792 */24 struct icmp_hdr25 { 26 unsigned char type; /* 类型 */27 unsigned char code; /* 代码 */28 unsigned short checksum; /* 校验和 */29 unsigned short id; /* 标识符 */30 unsigned short seq; /* 序列号 */ /* 这之后的不是标准 ICMP 首部, 用于记录时间 */31 unsigned long timestamp;32 };================这里有Ping源码,下载地址:http://download.csdn.net/detail/geoff08zhang/4571358 http://blog.csdn.net/qy532846454/article/details/5499094楼主看下这个是不是你想要的。 http://blog.csdn.net/visualeleven/article/details/5512462看这个有帮助没? 如果两边的TCP栈是你自己实现的那就可以实现你所说的是吗?如果不是干脆把时间戳放在应用层。 C++实现Log输出的问题 如何使CTABCTRL的各页内置对话框适应CTABLCTRL的大小? 特简单问题,有几行代码不懂,给解释一下 我在子线程中accept()为什么收不到连接请求啊?(附有程序代码) 急,怎么在VC中调用声卡,使自己编的程序发声,谢谢 为什么生成debug版本的可执行文件可以正常运行,生成RELEASE版本的可执行文件却提示内存不能为读?急! 我得updatedata不能用了 受不了了,走投无路来发帖求助! 《OpenGL超级宝典》中有关缩放矩阵代码困惑 静态库的使用,咋就这么大? 如果动态创建多线程 对话框中控件的移动
================
为了计算往返时间,通常在可选数据中保存发送Echo请求的时间戳。ICMP规定:接收者在应答中把标识符、序列号及可选数据返回给发送者。
/* ICMP 首部 -- RFC 792 */
24 struct icmp_hdr
25 {
26 unsigned char type; /* 类型 */
27 unsigned char code; /* 代码 */
28 unsigned short checksum; /* 校验和 */
29 unsigned short id; /* 标识符 */
30 unsigned short seq; /* 序列号 */
/* 这之后的不是标准 ICMP 首部, 用于记录时间 */
31 unsigned long timestamp;
32 };================
这里有Ping源码,下载地址:http://download.csdn.net/detail/geoff08zhang/4571358
楼主看下这个是不是你想要的。
看这个有帮助没?