Linux下ping程序的实现

前段时间有门计算机网络通信技术(软件),需要一个Linux下的Ping,仔细看了几天书和网上的代码,我写了个简化的版本,几乎没有任何的错误处理,全部使用库函数和系统预定义的结构体,比网上的要容易理解一些。要是有的人想迅速理解ICMP实现的Ping程序,看这个版本能比较快的找到头绪。

大致说明一下,程序的结构为:

1、定义原始套接字,使用ICMP协议

sock = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);

2、填充ICMP报头,记录当前系统时间,ICMP报头中的type设置为ICMP_ECHO,也就是要求对方主机回复一个type为ICMP_ECHOREPLY的包

sendtime = (struct timeval *)(sendbuf+sizeof(struct icmphdr));
gettimeofday(sendtime, NULL);

3、使用sendto函数发送,然后使用recvfrom函数接受回应

4、再次读取系统时间,计算数据包往返的时间

5、循环若干次

具体的代码请下载(下列链接任一均可):

1、C语言Linux的Ping程序源代码–LitePing

2、源代码下载点2

3、CSDN资源下载

Ubuntu 7.10 i386版、SuSE 10 Enterprise版测试通过,搜索关键字”Linux Ping 源代码”。

Tags: , ,

[资源]孙鑫VC++视频教程打包下载——第三课和以后的

请到本博客的下载页面查看,以后不再单贴发布,谢谢!

Tags: , ,

[资源]孙鑫VC++视频教程下载更新第四第五课

第四、第五课

照例是1024×768的视频、PPT和源码,这次提供fs2you和91files两个网站的服务,建议用fs2you的,MS快一点。

另外补全Code下载,方便已经有教程和PPT的。

具体见本站下载页面

网络原因,不能一次全部上传完,请等待,有耐心的可以边学边等,订我的RSS可以知道更新情况。

Tags: , ,

[资源]孙鑫VC++视频教程打包下载——第二课

Update:

请到本博客的下载页面查看所有

 

相关:[资源]孙鑫VC++视频教程打包下载–第一课

第二课是28.5M,照例包括PPT和代码。

点击进入fs2you下载页

Tags: , ,
    主题制作者:Directory JournalElegant Directory