2009-07-09 43 views
1

有人能指点我一些关于如何设置使用C套接字的ping方法的教程吗?使用beej的指南,我已经能够在两个设备之间建立连接,但是现在我想要设置一个方法,在启动实际连接之前,为所有可用设备启用ping。我从来没有这样做过,所以你会做一些事情,比如设置一个多播套接字来广播一个空的数据包,然后让那个空包的接收者填充它的IP地址,然后返回那个完整的数据包,这样你就可以有地址开始连接?任何指南的/帮助将不胜感激!C套接字命令?

+0

所以,你要平安,这是使用ICPM协议,或UPD广播? – 2009-07-09 20:44:50

+0

ICMP对不起,http://en.wikipedia.org/wiki/Internet_Control_Message_Protocol – 2009-07-09 20:45:34

回答

2

大多数当前IP堆栈不会响应对广播地址的ping请求。该功能被滥用于拒绝服务攻击。

实现真正的平安实现并不容易,我建议你使用现有的lib: http://www.kernelthread.com/projects/hanoi/html/icmp.html

但你必须通过所有的IP addrs的的手动循环在你的子网,让他们回复。