ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:41.83KB ,
资源ID:7395600      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7395600.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机网络实验.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算机网络实验.docx

1、计算机网络实验学生学号0120810680412实验课成绩 武汉理工大学学 生 实 验 报 告 书实验课程名称 计算机网络 开 课 学 院 计算机科学与技术学院 指导老师姓名 刘东飞 学 生 姓 名 陈天明 学生专业班级 软件0804班 2011 2011 学年 第 二 学期实验课程名称: 计算机网络 实验项目名称获取网卡的MAC地址实验成绩实验者陈天明专业班级软件0804班组别同组者实验日期 年 月 日第一部分:实验分析与设计(可加页)1、 实验内容描述(问题域描述)实验一 获取以太网卡的MAC地址内容:设计一个程序,使得能够获取本机安装的以太网卡的物理地址基本要求:一人独立完成。可显示运行

2、机器的MAC地址。2、 实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述) MAC:在局域网中,硬件地址又称为物理地址或MAC地址。 ARP协议简介 ARP(Address Resolve Protocol)地址请求解析协议,用于寻找和IP 地址相对应的MAC地址。在RFC 826中定义了ARP协议的数据格式和类型。ARP协议属于在网络层的下部,可看作为网络层和数据链路层的接口,主要用于IPv4以太网。 ARP消息类型有2 种: ARP request :ARP 请求 ARP response : ARP应答 ARP协议格式ARP 报文中各字段的意义 硬

3、件类型:以太网接口类型为1 协议类型:IP协议类型为080016 操作:ARP请求为1,ARP应答为2 硬件地址长度:MAC地址长度为6B 协议地址长度:IP地址长度为4B 源MAC地址:发送方的MAC地址 源IP地址:发送方的IP地址 目的MAC 地址:ARP 请求中该字段没有意义;ARP 响应中为接收方的MAC地址 目的IP 地址:ARP 请求中为请求解析的IP 地址;ARP 响应中为接收方的IP地址ARP 协议的改进高速缓存技术高速缓存区中保存最近获得的ARP表项高速缓冲区中ARP表项新鲜性的保持:计时器实验表明高速缓冲区的使用可以大大提高ARP 的效率其他改进技术目的主机接收到ARP请

4、求后将源主机的IP地址与物理地址映射关系存入自己的高速缓冲区ARP请求是广播发送的,网络中的所有主机接收到ARP请求后都可以将源主机的IP 地址与物理地址映射关系存入自己的高速缓冲区主机启动时主动广播自己的IP地址与物理地址的映射关系3、主要仪器设备及耗材 Windows操作系统,VC第二部分:实验调试与结果分析(可加页)1、 调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)本实验是在vc环境下完成的,使用了GetAdaptersInfo,遍历所有的适配器,将MAC地址显示出来。2、 实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等) 运

5、行程序,得到本机的mac地址,如下图:3、 实验小结、建议及体会通过本次实验,对计算机网络的相关知识有了更加深入的理解,对数据链路层的相关协议及操作方式有了更多的了解,锻炼了自己编写程序的能力,尤其是网络编程的技巧和方法。附代码:/ mac.cpp : 定义控制台应用程序的入口点。/#include stdafx.h#include #include #include #include using namespace std;#pragma comment(lib,Iphlpapi.lib)string GetMac() string strMac; ULONG ulAdapterInfoSi

6、ze = sizeof(IP_ADAPTER_INFO); IP_ADAPTER_INFO *pAdapterInfoBkp = NULL, *pAdapterInfo = (IP_ADAPTER_INFO*)new charulAdapterInfoSize; if( GetAdaptersInfo(pAdapterInfo, &ulAdapterInfoSize) = ERROR_BUFFER_OVERFLOW ) / 缓冲区不够大 delete pAdapterInfo; pAdapterInfo = (IP_ADAPTER_INFO*)new charulAdapterInfoSize

7、; pAdapterInfoBkp = pAdapterInfo; if( GetAdaptersInfo(pAdapterInfo, &ulAdapterInfoSize) = ERROR_SUCCESS ) do / 遍历所有适配器 if(pAdapterInfo-Type = MIB_IF_TYPE_ETHERNET) / 判断是否为以太网接口 / pAdapterInfo-Description 是适配器描述 / pAdapterInfo-AdapterName 是适配器名称 for(UINT i = 0; i AddressLength; i+) char szTmp8; sprin

8、tf(szTmp, %02X%c,pAdapterInfo-Addressi, (i = pAdapterInfo-AddressLength-1) ? 0:-); strMac.append(szTmp); if(i+7)%6=0) szTmp0=n; szTmp1=0; strMac.append(szTmp); pAdapterInfo = pAdapterInfo-Next; while(pAdapterInfo); if(pAdapterInfoBkp) delete pAdapterInfoBkp; return strMac;int _tmain(int argc, _TCHAR

9、* argv) string strMac = GetMac(); printf(%srn, strMac.c_str(); system(pause); return 0; 实验课程名称: 计算机网络 实验项目名称基于Socket的网络通信设计实验成绩实验者陈天明专业班级软件0804组别同组者实验日期 年 月 日第一部分:实验分析与设计(可加页)1、 实验内容描述(问题域描述)实验二 基于Socket的网络通信设计内容:综合运用网络协议、编程语言、API和图形界面实现基于socket建立、监听、连接、发送数据和接收数据的网络通信程序。基本要求:两人一组为单位,一个负责发送程序设计,一个负责接

10、收程序设计,程序设计完成后,可以进行字符数据收发或文件传输。2、 实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)本实验完成的是计算机远程控制。基于远程执行命令行来达到远程控制的结果。实验原理:实验使用java的socket来完成命令数据和执行结果数据的传输。 所谓socket通常也称作套接字,应用程序通常通过套接字向网络发出请求或者应答网络请求。 Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例, 操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生

11、不同级别。不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的。1.本程序使用Winsocket简介Windows Sockets规范以U.C. Berkeley大学BSD UNIX中流行的Socket接口为范例定义了一套Micosoft Windows下网络编程接口。它不仅包含了人们所熟悉的Berkeley Socket风格的库函数;也包含了一组针对Windows的扩展库函数,以使程序员能充分地利用Windows消息驱动机制进行编程。Windows Sockets规范本意在于提供给应用程序开发者一套简单的API,并让各家网络软件供应商共同遵守。

12、此外,在一个特定版本Windows的基础上,Windows Sockets也定义了一个二进制接口(ABI),以此来保证应用Windows Sockets API的应用程序能够在任何网络软件供应商的符合Windows Sockets协议的实现上工作。因此这份规范定义了应用程序开发者能够使用,并且网络软件供应商能够实现的一套库函数调用和相关语义。遵守这套Windows Sockets规范的网络软件,我们称之为Windows Sockets兼容的,而Windows Sockets兼容实现的提供者,我们称之为Windows Sockets提供者。一个网络软件供应商必须百分之百地实现Windows So

13、ckets规范才能做到现Windows Sockets兼容。任何能够与Windows Sockets兼容实现协同工作的应用程序就被认为是具有Windows Sockets接口。我们称这种应用程序为Windows Sockets应用程序。Windows Sockets规范定义并记录了如何使用API与Internet协议族(IPS,通常我们指的是TCP/IP)连接,尤其要指出的是所有的Windows Sockets实现都支持流套接口和数据报套接口.应用程序调用Windows Sockets的API实现相互之间的通讯。Windows Sockets又利用下层的网络通讯协议功能和操作系统调用实现实际的

14、通讯工作。它们之间的关系如图 2.Server-Client模型的程序原理开发原理:服务器,使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。客户端,使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例

15、程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。 Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix系统的输入和输出的话,就很容易了解Socket了。网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。三、主要仪器设备及耗材 Windows操作系统,vc实验效果:附代码:Server:#include

16、 #include void main() WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 1, 1 ); err = WSAStartup( wVersionRequested, &wsaData ); if ( err != 0 ) return; if ( LOBYTE( wsaData.wVersion ) != 1 | HIBYTE( wsaData.wVersion ) != 1 ) WSACleanup( ); return; SOCKET sockSrv=socket

17、(AF_INET,SOCK_STREAM,0); SOCKADDR_IN addrSrv; addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY); addrSrv.sin_family=AF_INET; addrSrv.sin_port=htons(6000); bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR); listen(sockSrv,5); SOCKADDR_IN addrClient; int len=sizeof(SOCKADDR); SOCKET sockConn=accept(sockS

18、rv,(SOCKADDR*)&addrClient,&len); while(1) char sendBuf100; scanf(%s,sendBuf); send(sockConn,sendBuf,strlen(sendBuf)+1,0); char recvBuf100; recv(sockConn,recvBuf,100,0); printf(Client:%sn,recvBuf); closesocket(sockConn); closesocket(sockSrv);Client:#include #include void main() WORD wVersionRequested

19、; WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 1, 1 ); err = WSAStartup( wVersionRequested, &wsaData ); if ( err != 0 ) return; if ( LOBYTE( wsaData.wVersion ) != 1 | HIBYTE( wsaData.wVersion ) != 1 ) WSACleanup( ); return; SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0); SOCKADDR_IN addr

20、Srv; addrSrv.sin_addr.S_un.S_addr=inet_addr(127.0.0.1); addrSrv.sin_family=AF_INET; addrSrv.sin_port=htons(6000); connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR); while(1) char recvBuf100; recv(sockClient,recvBuf,100,0); printf(Server:%sn,recvBuf); char sendBuf100; scanf(%s,sendBuf); send(sockClient,sendBuf,strlen(sendBuf)+1,0); closesocket(sockClient); WSACleanup();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1