【最新文档】实验一实验报告-优秀word范文 (6页)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!
== 本文为word格式,下载后可方便编辑和修改! ==
实验一实验报告
网络程序设计
实验报告
实验名称:_ Winsock编程接口实验 _
实验类型:_______ 验证型实验 ________
指导教师:专业班级:_________XXXXXXXXX__________
姓名:________ XXXXXXXXX_____ ________ 学号:
_________XXXXXXXXX____________
电子邮件:_______XXXXXXXXXXXX________
实验地点:_______XXXXXXXXX______________
实验日期: XXXXXXXXX
实验成绩:__________________________
一、实验目的
1.掌握Winsock的启动和初始化;
2.掌握gethostname(),gethostbyname(),GetAdaptersInfo()等信息查询函数的使用。
二、实验设计
实验流程图
三、实验过程
1.在实验过程中调用GetAdaptersInfo()时,出现了undeclared identifier 的报错,原因是没有包含其头文件,但在加了头文件iphlpapi.h后,依然出现如下错误:
fatal error C1083: Cannot open include file: 'iphlpapi.h': No such file or directory
Error executing cl.exe.
查阅资料得知,该错误的出现是因为没有安装SDK,将SDK安装并添加到VC中后,程序错误得到解决。
2.实验结果
1.程序主界面
2.选择解析指定域名
3.选择查看本机信息
四、讨论与分析
1)Winsock初始化的作用是什么?
答:使用winsock初始化可加载winsock编程的动态链接库。
2)给出GetAdaptersInfo()函数的正确使用方法。
GetAdaptersInfo 函数使用方法:
1.包含头文件IpHlpApi.h,其库文件为IpHlpApi.lib(已将安装SDK,并将其连接至VC)
2.声明一个 IP_ADAPTER_INFO 结构指针变量 pAdapterInfo,一个 ULONG变量ulOutBufLen。
这些变量作为参数传递给 GetAdaptersInfo 函数;
3. 为结构分配内存;
4. 第一次调用 GetAdaptersInfo 获取适当的 ulOutBufLen 变量大小;
5. 第二次调用传递 pAdapterInfo,ulOutBufLen 作为参数, 调用成功时返回网卡信息,失败时返回错误信息。
3)域名解析时出现域名对应多个IP,请解释原因。
大型网站具有多个IP,这是因为其访问量大,使用多个IP保持负载均衡。
五、实验者自评
通过本次实验,我对Winsock编程中的几个基本接口有了更加深刻的认识和理解,对其调用方法、参数意义、返回值信息等的认识都更加了解了,通过自己
亲自编写代码,调用在课堂上学到的函数,对课堂知识也是一次巩固。
在本次实验过程中也遇到一些困难和问题,但这些问题都通过自己查阅资料,
请教同学得到了较好的解决,在发现和解决问题的过程中,我的程序编写技能、解决问题的能力都得到了锻炼和提高。
虽然本次实验的难度不是很大,但我们的能力就是在这种由浅入深的过程中得
到提升的,在这次实验中,我认真对待,将其视为我学习网络编程的基础能力
的锻炼。
并且,只有打好了基本功,才能更好地应对之后的更高难度的挑战。
六、附录:关键代码
//通过域名解析地址函数
void GetIpByDomain()
{
char szHost[256], cmd[256], tmpStr[256];
char* p; hostent *pHost; int i, j;
getchar(); gets(cmd);
//将输入指令的前5个字符取出
strncpy(tmpStr, cmd, (0, 5));
tmpStr[5] = '\0';
//判断指令的前五个字符是否等于"getip",若不是,则表示输入指令错误
if ( strcmp(tmpStr, "getip") ){
printf("wrong command\n");
return; }
//获取需要解析地址的开始位置
p = strstr(cmd, "www");。