东南大学计算机网络实验报告1

上传人:豆浆 文档编号:11366956 上传时间:2017-09-02 格式:PDF 页数:7 大小:214.93KB
返回 下载 相关 举报
东南大学计算机网络实验报告1_第1页
第1页 / 共7页
东南大学计算机网络实验报告1_第2页
第2页 / 共7页
东南大学计算机网络实验报告1_第3页
第3页 / 共7页
东南大学计算机网络实验报告1_第4页
第4页 / 共7页
东南大学计算机网络实验报告1_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《东南大学计算机网络实验报告1》由会员分享,可在线阅读,更多相关《东南大学计算机网络实验报告1(7页珍藏版)》请在金锄头文库上搜索。

1、东南大学 自动化学院 实 验 报 告 课程名称: 信息通信网络概论 第 1 次实验 实验名称: TCP/IP 协议与 Socket 编程认识实验 院 (系): 自动化 专 业: 自动化 姓 名: 肖显东 学 号: 08012112 实 验 室: 金智楼 5 楼 5 号机房 实验组别: 同组人员: 实验时间: 年 月 日 评定成绩: 审阅教师: 目 录 1. 实验目的和要求 1 2. 实验原理 1 3. 实验方案和实验步骤 1 4. 实验设备和器材配置 1 5. 实验记录 1 6. 实验总结 2 7. 思考题和讨论题 2 8. 附录代码 onok1,2 4 一 实验目的和要求 目的: 能够将输入

2、的 IP 转换为 URL,同时也能将 URL 转换为 IP 要求: 理解掌握 WSAStartup()、 WSACleanup() 函数的使用;知道 WSADATA、 HOSTENT结构成员表 示意义和 inet_ntoa()、 inet_addr()函数的使用。 二 实验原理 原理: 利用 socket 函数 三 实验 方案与 实验步骤 1.网络程序初始化,调用其它 WinSock 函数之前先使用 WSAStartup()函数初始化 2.通过 WinSock 发送和接收数据 3.程序结束必须关闭 Socket,使用 WSACleanup()释放所分配的内部缓冲区和其他资源。 四 实验设备与器

3、材配置 电脑 + vc6.0 五 实验记录 在运行程序时因为电脑之前重装,导致了缺少很多组件,经过多方修复终于使程序能够完美运行。( MFCO42D.DLL,MFCN42D.DLL 等) 六 实验总结 本次试验让我对 socket有了初步的了解 ,学会了通过 MFC将 URL和 IP进行转换的方法,加深了对 MFC 的理解,同时锻炼了 MFC 编程能力。 七 思考题或讨论题 1. WinInet 有什么作用? WinInet( “Windows Internet” ) API 帮助 程序员 使用三个常见的 Internet 协议,这三个协议是用于 World Wide Web 万维网的 超文本

4、 传输协议 ( HTTP: Hypertext Transfer Protocol)、 文件传输协议 ( FTP: File Transfer Protocol)和另一个称为 Gopher 的文件传输协议 2. 结合本次实验,谈谈使用 MFC WinInet 类有 哪些 优点 ? Win32 Internet 扩展提供了对普通 Internet 协议的访问,这些协议包括: HTTP、FTP 和 Gopher。 Gopher 已经渐渐淡出。借助于 WinInet 编程接口,开发人员不必去了解 Winsock、 TCP/IP和特定 Internet协议的细节就可以编写出高水平的 Internet客

5、户端程序。 WinInet 为所有几种协议( HTTP、 FTP 和 Gopher)提供了统一的函数集,也就是 Win32 API 接口。利用这些统一的函数集,大大简化了针对 HTTP、 FTP等协议的编程,从而轻松地将 Internet 集成到自己的应用程序中。底层协议的转换(如从 FTP 到 HTTP)只要对源代码稍作修改就可以完成。 MFC 对 WinInet 的封装是通过提供三个由 CStdioFile 派生类实现的。这三个派生类是: CInternetFile、 CHttpFile 和 CGopherFile。对开发人员来说,不管你以前是否用过 CStdioFile, WinInet

6、 都是很好理解并且易于使用的。它使得存取 Internet 数据易如反掌,使得 Internet 数据和本地数据的处理一致透明,数据的存储位置已经不再重要。 八 附录代码 void CMyDlg:OnOk1() / TODO: Add your control notification handler code here WSADATA wsaData; LPHOSTENT lpHostEnt;/该结构包含主机的 ip; if(WSAStartup(0X0101,&wsaData)/若初始化成功则返回 0;相当于应用程序与dll /之间的连接初始化,然后才能使用 winsock api 的函数

7、 MessageBox(Could not load windows sockets dll.,NULL,MB_OK|MB_ICONSTOP); else UpdateData(TRUE);/用于将屏幕上控件中的数据交换到变量中。 /TODO: 此处需要自己添加函数,由对话框中输入的主机名 m_Url1 得到对应的包含主机 ip 的结构变量 lpHostEnt / 例 如 : 输 入 的 是 , 得 到 包 含 对 应 IP 为11000000001000000100000000000010 的结构变量 lpHostEnt = gethostbyname(m_Url1); if(!lpHos

8、tEnt) MessageBox(Could not get ip address.,NULL,MB_OK|MB_ICONSTOP); else /TODO: 此处需要自己添加函数,把 lpHostEnt 结构中成员变量h_addr_list 包含的网络位顺序的 IPv4 地址转化为常见的点间隔格式 IP 以供显示 / 例 如 : 输 入 的 是 11000000001000000100000000000010 , 得 到192.32.64.2 m_Ip1 = inet_ntoa(*(LPIN_ADDR)*(lpHostEnt-h_addr_list); UpdateData(FALSE);/

9、用于将数据在屏幕中对应控件中显示出来。 WSACleanup(); void CMyDlg:OnOk2() / TODO: Add your control notification handler code here WSADATA wsaData; LPHOSTENT lpHostEnt; DWORD dwIPAddr; if(WSAStartup(0x0101,&wsaData) MessageBox(Could not load windows sockets dll.,NULL,MB_OK|MB_ICONSTOP); else UpdateData(TRUE);/用于将屏幕上控件中的

10、数据交换到变量中。 /TODO: 此处需要自己添加函数,由对话框中输入的点间隔格式的 IP 地址m_Ip2 转化为一个以网络字节顺序表示的 32 位二进制 IP 地址 dwIPAddr /例如,原来为 192.32.64.2,转化后为 11000000001000000100000000000010 dwIPAddr = inet_addr(m_Ip2); if(dwIPAddr=INADDR_NONE) MessageBox(Invalid Internet Address.,NULL,MB_OK|MB_ICONSTOP); else /TODO: 此处需要自己添加函数,把 IP 地址 dw

11、IPAddr 转化为对应的包含网络名称的结构变量 lpHostEnt / 例 如 : 输 入 的 是 11000000001000000100000000000010 , 得 到 lpHostEnt = gethostbyaddr(char FAR*)&dwIPAddr,4,PF_INET); if(!lpHostEnt) MessageBox(Could not get host name.,NULL,MB_OK|MB_ICONSTOP); else /TODO: 添加函数,从结构变量 lpHostEnt 中取得对应 IP 名称的成员变量 h_name,并赋给 m_Url2 变量以供显示 m_Url2 = lpHostEnt - h_name; UpdateData(FALSE);/用于将数据在屏幕中对应控件中显示出来。 WSACleanup();

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号