- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络协议编程课程设计精选
网络协议编程
课程设计
指导教师:
学生班级: 网络10802
学生姓名:
学 号:
班内序号: 21
课设日期:2011/7/5~2011/7/12
目 录
一、课程设计目的与任务 3
二、设计任务及要求 3
1、RAW模式的SOCKET编程 3
2、具体内容 3
三、需求分析 4
四、总体设计(流程图) 5
五、详细设计与实现 6
六、实现结果及结果分析 11
七、使用说明 14
八、课设小结 14
一、课程设计目的与任务
网络协议编程课程设计是学习《TCP/IP协议分析》课程后的一个重要实践环节,是对学生进行的一次较为全面的网络协议分析应用程序设计训练。其基本目的是:
(1)培养学生理论联系实际的设计思想,训练综合运用所学的基础理论知识,结合生产实际分析和解决网络应用中基本问题的能力,从而使基础理论知识得到巩固和加深。
(2)训练学生运用软件工程的原理、方法和工具完整地设计并开发一个网络应用系统,历练软件工程常规设计过程和基本方法。为将来的实际应用开发打好基础。
(3)深层次掌握TCP/IP协议的基本原理与数据格式。
(4)熟悉并掌握网络通信协议编程 PING ΧΧΧ.ΧΧΧ.ΧΧΧ.ΧΧΧ
其中ΧΧΧ为目的主机的IP地址,不要求支持域名,对是否带有开关变量也不做要求。不带开关变量时,要求返回4次响应。
返回信息显示在窗体上:
REPLY FROM ΧΧΧ.ΧΧΧ.ΧΧΧ.ΧΧΧ
或
REQUEST TimeOut (无法PING通的情况)
(3)实验步骤和注意事项
1、 熟悉IP以及ICMP协议的工作机制
2、 熟悉RAW模式的SOCKET编程
3、 编写PING的实现程序
4、 编译环境中需要包括SOCKET库 WS2_32.lib
5、 在模拟实现环境下调试并运行自己编写的PING程序
三、需求分析
在带界面的PING程序中最基本的需要是用以输入IP的文本框,显示reply的文本框和几个基本按钮。这个要事先知道在PING ΧΧΧ.ΧΧΧ.ΧΧΧ.ΧΧΧ后的reply要返回哪些内容,上面已经要求返回4次响应,每次相应的reply就以我们平时在doc下ping的结果为模板REPLY FROM ΧΧΧ.ΧΧΧ.ΧΧΧ.ΧΧΧ:Bytes=XX TTL=XXX Time=XXms.虽然要求ΧΧΧ为目的主机的IP地址,不要求支持域名但域名的转换还是蛮简单的固定代码就加上去了。也添加了两个清空的按钮以便于用户使用。
四、总体设计(流程图)
五、详细设计与实现
1.用vc新建一个MFC对话框工程,从控件中拖入静态文本右击属性修改id和标题,类似的再拖入其他的编辑框和按钮,在显示reply的编辑框的属性中要勾选只读,这样既可以无法修改reply又可以节省复制粘贴的代码。
在界面大致完成的时候界面如下:
图一:完成界面结构
因为默认的是白色所以在Initlnstance()中添加SetDialogBkColor (RGB (128, 184, 223), RGB ( 0, 0 , 150 ) );使得界面的背景色变为蓝色。
图二:改变背景
BOOL CPingApp::InitInstance()
{
SetDialogBkColor (RGB (128, 184, 223), RGB ( 0, 0 , 150 ) );
觉得通用的.ico图片不是我想要的便换了一张。
在此时运行得到的界面效果是:
图三:没有任何的功能的蓝色界面效果
2.接下来就是在.cpp文件中添加相应的代码以实现老师和自己的要求。
首先是定义ip和icmp 的首部,这些代码是固定的所以直接复制粘贴了。
typedef struct ip_hdr //定义IP首部
{
unsigned char h_verlen; //4位首部长度,4位IP版本号
unsigned char tos; //8位服务类型TOS
unsigned short total_len; //16位总长度(字节)
unsigned short ident; //16位标识
unsigned short frag_and_flags;//3位标志位
unsigned char ttl; //8位生存时间 TTL
unsigned char proto; //8位协议 (TCP,
文档评论(0)