07 网络工程本
制作人:北-624 寝室
负责人:赖文斌
第四篇 网络编程
第九章 ping 程序设计
ping 命令是使用频率极高的一个网络测试命令,用以测试从一个主机到另一个主机
间的网络上否可达。windows 自带的 ping 命令具有强大的功能,它有很多选项用于实现不
同的测试目的。本章模仿 windows 的 ping 命令,用 c 语言实现了一个简单的命令。本章着
重讲述 ping 命令的实现原理和 c 语言的网络编程方法。读者可以在本章的基础上,对本章
实现的 ping 命令进行扩展,开发出功能更强大、更完善的 ping 命令,并进一步掌握网络
编程的方法。
9.1 设计目的
本章通过设计 Ping 程序,讲解 Ping 程序的实现原理,并初步讲解了 c 语言网络编程技术。
本章涉及很多网络编程函数和编程技巧。包括库文件的导入;winsock 的初始化、注销;
socket 的创建、关闭;设置 socket 选项;根据主机名获取 IP 地址; 从堆中分配一定数量
的空间、释放从堆中分配的空间;获取当前进程 ID 号;数据报的发送;数据报的接等。
通过本程序的训练,使读者对网络编程有一定的了解,掌握 Ping 程序的设计方法,
掌握网络编程的方法和技巧,从而编写出功能更强大的程序。
9.2 功能描述
本章用 c 语言实现的 ping 命令,能用于测试一个主机到另一个主机间的联通情况,
程序还提供了几个选项以实现不同的功能。
(1)实现 ping 功能。程序能实现基本的 ping 操作,发送 ICMP 回显请求报文,接收显应
答报文。
(2)能记录路由。程序提供了“-r”选项,用以记录从源主机到目的主机的路由。
(3)能输出指定条数的记录。程序提供了“-n”选项,用以输出指定条数的记录。
(4)能按照指定大小输出每条记录。程序提供了“datasize”选项,用以指定输出的数据报
的大小。
(5)能输出用户帮助。程序提供了用户帮助,显示程序提供的选项以及选项格式等。
9.3 总体设计
9.3.1 功能模块设计
1. 功能模块图
本系统共有 4 个模块,分别是初始化模块、功能控制模块、数据控制模块、数据报解
读模块和 ping 测试模块,如图 9.1 所示。各模块功能描述如下。
评论3