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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

计算机网络实验报告.docx

1、计算机网络实验报告学生学号实验课成绩学 生 实 验 报 告 书实验课程名称 计算机网络 开 课 学 院 计算机科学与技术学院 指导老师姓名 学 生 姓 名 学生专业班级 2012 2013 学年 第 二 学期实验课程名称: 计算机网络 实验项目名称获取网卡的MAC地址实验成绩实验者专业班级组别同组者实验日期 年 月 日第一部分:实验分析与设计(可加页)一、 实验内容描述(问题域描述)内容:设计一个程序,使得能够获取本机安装的以太网卡的物理地址基本要求:一人独立完成。可显示运行机器的MAC地址。二、 实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)MAC

2、地址:在局域网中,MAC(Medium Access Control)地址,即物理地址,用来定义网络设备的位置。在OSI模型中,第三层网络层负责 IP地址,第二层数据链路层则负责 MAC位址。因此一个网卡会有一个全球唯一固定的MAC地址,但可对应多个ip地址。(一)、两种不同的MAC帧格式常用的以太网MAC帧格式有两种标准,一种是DIX Ethernet V2标准;另一种是IEEE的802.3标准。 目前MAC帧最常用的是以太网V2的格式。 一个地址块可以生成224个不同的地址。这种48位地址称为MAC-48,它的通用名称是EUI-48。“MAC地址”实际上就是适配器地址或适配器标识符EUI-

3、48。(二)、MAC层的硬件地址 1、在局域网中,硬件地址又称物理地址或MAC地址,它是数据帧在MAC层传输的一个非常重要的标识符。 2、网卡从网络上收到一个 MAC 帧后,首先检查其MAC 地址,如果是发往本站的帧就收下;否则就将此帧丢弃。单击开始,找到命令提示符,进入后输入ipconfig /all即可获取MAC地址,该地址可以作为用作检查用程序检测到MAC地址的对错。通过调用一些计算机的命令函数,获取IP,各种适配器的信息,然后通过关键字查找到以太网适配器,进一步找到MAC地址,其中用到了indexOf,subString等函数。三、主要仪器设备及耗材Windows 7,Eclipse,

4、JDK 1.6第二部分:实验调试与结果分析(可加页)一、 调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)程序如下:Package mac ;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Mac public static String getMACAddress() String mac = null; BufferedReader bufferedReader = null; Process pr

5、ocess = null; try process = Runtime.getRuntime().exec(ipconfig /all);/ windows下的命令,显示信息中包含有mac地址信息 ,runtime是本地命令 bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream(); String line = null; int index = -1; while (line = bufferedReader.readLine() != null) if (line.indexOf(以

6、太网适配器)=0) /寻找标示字符串以太网适配器,indexOf()返回指定字符在此字符串中第一次出现处的索引 while (line = bufferedReader.readLine() != null) index = line.indexOf(物理地址);/ 寻找标示字符串【物理地址】 if (index = 0) / 找到了 index = line.indexOf(:); / 寻找:的位置 if (index=0) mac = line.substring(index + 1).trim();/ 取出mac地址并去除2边空格 /trim()用来删除左右两边空格 substring(

7、)用来返回一个新的字符串 /它是此字符串的一个子字符串。该子字符串始于指定索引处的字符,一直到此字符串末尾。 break; catch (IOException e) System.out.println(出现异常); finally /finally的作用是无论程序是否发生异常都会执行的部分 try if (bufferedReader != null) bufferedReader.close(); catch (IOException e1) e1.printStackTrace(); /与System.out.println(异常)相同 bufferedReader = null; p

8、rocess = null; return mac; public static void main(String argc) String mac = getMACAddress(); System.out.println(MAC地址是:+mac); 二、 实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)程序运行结果如下:程序运行正常后,把结果与在dos详细信息对比:以太网适配器 本地连接:物理地址. . . . . .24-B6-FD-09-5D-55结果一样。三、 实验小结、建议及体会通过这次试验,我深层次的了解了电脑上的一些与网络,信息传输,以及五层体系结构

9、中的数据链路层中的MAC地址的应用以及各式,MAC地址就是物理地址,是确认一台电脑的唯一标识,在网卡上标注。获取MAC地址的一种方式就是在DOS下输入ipconfig /all,显示一些本机的相关信息,就可以查看得到机器的物理地址。MAC地址主要在物理层和数据链路层应用,装载IP数据报。编程过程中查找了一些资料,一些函数的运用,如exec,Trim,subString等,在以后的学习中要多实践,多运用一些不熟悉的函数,加深对系统库的掌握程度,使编程更加熟练。实验课程名称: 计算机网络 实验项目名称基于Socket的网络通信设计实验成绩实验者专业班级组别同组者万灿实验日期 年 月 日第一部分:实

10、验分析与设计(可加页)一、 实验内容描述(问题域描述) 内容:综合运用网络协议、编程语言、API和图形界面实现基于socket建立、监听、连 接、发送数据和接收数据的网络通信程序。 基本要求:两人一组为单位,一个负责发送程序设计,一个负责接收程序设计,程序设计 完成后可以进行字符数据收发或文件传输。二、 实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)根据应用程序的不同需求,运输层需要有两种不同的运输协议,即面向连接的TCP和无连接的UDP。本次实验主要是针对TCP开发程序,每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定。即:TCP传

11、输数据的过程:服务器端程序在本机的某个端口上监听,等待客户端连接此端口,一旦客户端连接到了此端口,服务器端和客户端就可以进行数据传输了,数据传输结束后,关闭连接。通过服务器的监听,accept到客户端发来的信息,对服务器的IP地址与端口号进行确认后,服务器和客户端开始通信,采用图形界面的方式来显示服务器与客户端的连接通信。三、主要仪器设备及耗材Windows 7,Eclipse,JDK 1.6第二部分:实验调试与结果分析(可加页)一、 调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)服务器程序如下:package socket1;import java.awt.*

12、;import java.awt.event.*;import javax.swing.*;import java.io.*;import .*;public class Fuwuqi public static void main (String args) new Server(); class Server static int port = 0; static int startStatus = 0; SuppressWarnings( unused, static-access ) Server() try ServerFrame serverFrame = new ServerFr

13、ame(服务器); while(startStatus = 0)|(port =0) Thread.currentThread().sleep(120); ServerSocket serverSocket = new ServerSocket(port,6); int clientSort = 0; for(int i = 0;i+) Socket socket = serverSocket.accept(); clientSort+; PrintWriter out = new PrintWriter(socket.getOutputStream(); BufferedReader in

14、= new BufferedReader(new InputStreamReader(socket.getInputStream(); Thread th = new Thread(new Communicate(socket,clientSort,out,in); th.start(); catch(Exception m) System.out.println(ERROR+m); /线程运行类class Communicate implements Runnable int clientSort; Socket socket; PrintWriter out; BufferedReader

15、 in; JTextArea area3; Communicate(Socket socket,int clientSort,PrintWriter out,BufferedReader in) this.socket = socket; this.clientSort = clientSort; this.out = out; this.in = in; public void run() try area3 = new JTextArea(); SuppressWarnings(unused) ClientWithServer clientWithServer = new ClientWi

16、thServer(clientSort,out,area3); out.println(已成功连接至服务器.); out.flush(); String acceptString; while(!(acceptString=in.readLine().equals(bye) area3.append(Client: + acceptString +n); in.close(); out.close(); socket.close(); catch(Exception g) System.out.println(Error: +g); /服务器与客户端通信窗口class ClientWithSe

17、rver JFrame frame3; JTextArea area3; JTextField field3; JButton button3; int x = 200; int y = 150; int width = 400; int height = 400; PrintWriter out; ClientWithServer(int clientRank,PrintWriter out,JTextArea ar) this.out = out; area3 = ar; System.out.println(4n); frame3 = new JFrame(客户端+clientRank)

18、; frame3.setLayout(null); frame3.setLocation(x,y); frame3.setSize(width,height); JPanel panel3 = new JPanel(); JScrollPane scrollPane3 = new JScrollPane(area3); frame3.add(scrollPane3); frame3.add(panel3); scrollPane3.setLocation(0,0); scrollPane3.setSize(width,(height*4/5); scrollPane3.setBackgroun

19、d(Color.WHITE); panel3.setLocation(0,(height*4/5); panel3.setSize(width,(height/5); panel3.setBackground(Color.LIGHT_GRAY); field3 = new JTextField(25); panel3.add(field3); field3.addActionListener(new ActionFieldButton(); field3.setLocation(width/70),(height*2/5); button3 = new JButton(Send); panel

20、3.add(button3); button3.addActionListener(new ActionFieldButton(); button3.setLocation(18*width/19),(height*5/7); button3.setSize(35,23); frame3.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame3.setResizable(false); frame3.setVisible(true); class ActionFieldButton implements ActionListener publ

21、ic void actionPerformed(ActionEvent e) out.println(field3.getText(); out.flush(); area3.append(Server: + field3.getText() + n); field3.setText(); /设置端口号和启动服务器窗口class ServerFrame JFrame frame1; static JTextArea area1; JButton buttonPort; JButton buttonStart; int x1 = 700; int y1 = 150; int width1 = 4

22、00; int height1 = 400; ServerFrame(String s) frame1 = new JFrame(s); frame1.setLayout(null); frame1.setLocation(x1,y1); frame1.setSize(width1,height1); JPanel panel1 = new JPanel(); frame1.add(panel1); panel1.setLocation(0,0); panel1.setSize(width1,(height1*60/500); panel1.setLayout(new FlowLayout(F

23、lowLayout.LEFT,60,10); buttonPort = new JButton(设置端口号); panel1.add(buttonPort); buttonPort.addActionListener(new ActionPort(); buttonPort.setSize(50,23); buttonStart = new JButton(启动服务器); panel1.add(buttonStart); buttonStart.addActionListener(new ActionStart(); buttonStart.setSize(50,23); area1 = ne

24、w JTextArea(); JScrollPane scrollPane1 = new JScrollPane(area1); frame1.add(scrollPane1); scrollPane1.setLocation(0,(height1*60/500); scrollPane1.setSize(width1,(height1*420/500); area1.setBackground(Color.LIGHT_GRAY); frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame1.setResizable(false)

25、; frame1.setVisible(true); /监听启动服务器按钮 class ActionStart implements ActionListener public void actionPerformed(ActionEvent e) Server.startStatus = 1; area1.append(服务器已启动.n); /监听端口设置键class ActionPort implements ActionListener static JFrame frame2; static JTextField field2; JButton buttonok; public voi

26、d actionPerformed(ActionEvent e) frame2 = new JFrame(端口号设置); frame2.setLayout(new FlowLayout(FlowLayout.CENTER,100,10); frame2.setLocation(800,300); frame2.setSize(350,200); field2 = new JTextField(10); frame2.add(field2); field2.addActionListener(new ActionPortSet(); buttonok = new JButton(确定); fra

27、me2.add(buttonok); buttonok.addActionListener(new ActionPortSet(); frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame2.setResizable(true); frame2.setVisible(true); /监听端口设置窗口class ActionPortSet implements ActionListener public void actionPerformed(ActionEvent e) try Server.port= Integer.par

28、seInt(ActionPort.field2.getText(); ActionPort.field2.setText(); ServerFrame.area1.append(您的服务器端口号设置为: +Server.port+n); ActionPort.frame2.setVisible(true); catch(NumberFormatException m) System.out.println(ERROR+m); 客户端程序如下:package socket1;import java.awt.*;import java.awt.event.*;import java.io.*;import .*;import javax.swing.*;SuppressWarnings(serial)public class Client extends JFramestatic String ip;static int port = 0;static PrintWriter out; /类Print

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

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