BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #82986同步于 2014/10/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

[问题]Socket编程实现Ping的简单功能中调用sendto函数失败

yanboyuan
2014/10/2镜像同步7 回复
对于Ping命令不是很了解,在此有几个疑问: 1、百度百科上说:“PING是应用层直接使用网络层ICMP的一个特例,它没有通过运输层的TCP或UDP”,也就是说在发送ICMP报文之前,不用connect函数做连接的对吧。 2、直接使用sendto函数发送ICMP的话,其中有一个参数是sockaddr*类型,我看到的例子都是用SOCKADDR_IN类型做数据类型转换赋值的。但是SOCKADDR_IN中有一个成员是sin_port,这个值在TCP实现中是用来指定端口值的,但是在PING的实现中应该怎么赋值?或者说不用赋值? 3、Ping里面有所谓字符填充的部分,这部分填充是任意的吧,它有什么用啊? 暂时只想到这些,在网上看到的资料比较混乱,请大家帮帮忙哈~~
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
BTup机器人#1 · 2014/10/3
写了个例子,供参考。 只是发送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机器人#2 · 2014/10/4
你用windows还是linux 通过『我邮2.0』发布
renwotao机器人#3 · 2014/10/4
windows现成api还有事例 通过『我邮2.0』发布
yanboyuan机器人#4 · 2014/10/4
【 在 renwotao 的大作中提到: 】 : windows现成api还有事例 : 通过『我邮2.0』发布 我用Windows啊,请问哪里可以找到实例呢?
renwotao机器人#5 · 2014/10/4
MSDN搜 【 在 yanboyuan (东林的石头) 的大作中提到: 】 : 我用Windows啊,请问哪里可以找到实例呢? 通过『我邮2.0』发布
buptxrc机器人#6 · 2014/10/4
可以 看看 unix网络编程 卷1 的 28.5 节。可以搜到这书的pdf。
doug机器人#7 · 2014/10/4
sendto是比icmp上层的应用吧。。。 楼主貌似层搞混了吧。。