返回信息流对于Ping命令不是很了解,在此有几个疑问:
1、百度百科上说:“PING是应用层直接使用网络层ICMP的一个特例,它没有通过运输层的TCP或UDP”,也就是说在发送ICMP报文之前,不用connect函数做连接的对吧。
2、直接使用sendto函数发送ICMP的话,其中有一个参数是sockaddr*类型,我看到的例子都是用SOCKADDR_IN类型做数据类型转换赋值的。但是SOCKADDR_IN中有一个成员是sin_port,这个值在TCP实现中是用来指定端口值的,但是在PING的实现中应该怎么赋值?或者说不用赋值?
3、Ping里面有所谓字符填充的部分,这部分填充是任意的吧,它有什么用啊?
暂时只想到这些,在网上看到的资料比较混乱,请大家帮帮忙哈~~
这是一条镜像帖。来源:北邮人论坛 / cpp / #82986同步于 2014/10/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
[问题]Socket编程实现Ping的简单功能中调用sendto函数失败
yanboyuan
2014/10/2镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
写了个例子,供参考。
只是发送PING请求,没有处理应答。
【 在 yanboyuan 的大作中提到: 】
: 对于Ping命令不是很了解,在此有几个疑问:
: 1、百度百科上说:“PING是应用层直接使用网络层ICMP的一个特例,它没有通过运输层的TCP或UDP”,也就是说在发送ICMP报文之前,不用connect函数做连接的对吧。
: 2、直接使用sendto函数发送ICMP的话,其中有一个参数是sockaddr*类型,我看到的例子都是用SOCKADDR_IN类型做数据类型转换赋值的。但是SOCKADDR_IN中有一个成员是sin_port,这个值在TCP实现中是用来指定端口值的,但是在PING的实现中应该怎么赋值?或者说不用赋值?
: ...................
附件(2.2KB) icmp_ping.cpp
【 在 renwotao 的大作中提到: 】
: windows现成api还有事例
: 通过『我邮2.0』发布
我用Windows啊,请问哪里可以找到实例呢?
MSDN搜
【 在 yanboyuan (东林的石头) 的大作中提到: 】
: 我用Windows啊,请问哪里可以找到实例呢?
通过『我邮2.0』发布