文档库 最新最全的文档下载
当前位置:文档库 › 计算机网络程序设计实验6

计算机网络程序设计实验6

计算机网络程序设计实验6
计算机网络程序设计实验6

北京联合大学信息学院

《网络程序设计》

实验报告

实验序号:

姓名:

学号:

班级:

专业:

实验六、基于 MFC 的 UDP 协议的网络程序调试

服务器代码

void CUdpSDlg::OnSocket(WPARAM wParam,LPARAM lParam)

{

char cs[100]=""; //定义数据缓冲区

if(lParam==FD_READ) //如果是套接字读取时间

{

CString num=""; //定义字符串变量

int n=sizeof(addr1);

::recvfrom(s,cs,100,0,(sockaddr*)&addr1,&n); //接收客户端信息GetDlgItem(IDC_EDIT1)->GetWindowText(num); //获取消息框中的内容

num+="\r\n 客户端说:"; //添加回车换行符

num+=(LPTSTR)cs; //将接收到的数据转换为字符串

GetDlgItem(IDC_EDIT1)->SetWindowText(num); //设置消息框内容

}

}

BOOL CUdpSDlg::OnInitDialog()

{

CDialog::OnInitDialog();

// Set the icon for this dialog. The framework does this automatically

// when the application's main window is not a dialog

SetIcon(m_hIcon, TRUE); // Set big icon

SetIcon(m_hIcon, FALSE); // Set small icon

// TODO: Add extra initialization here

WORD version = MAKEWORD(2,0);

WSADATA wsadata;

if(WSAStartup(version,&wsadata))

{

MessageBox("加载Winsock dll 失败");

return true;

}

addr.sin_family=AF_INET;

addr.sin_port=htons(8088);

addr.sin_addr.S_un.S_addr=INADDR_ANY;

s=::socket(AF_INET,SOCK_DGRAM,0);

::bind(s,(sockaddr*)&addr,sizeof(addr));

:: WSAAsyncSelect(s,this->m_hWnd,WM_SOCKET, FD_READ);//将套接字设置为

异步模式

return TRUE; // return TRUE unless you set the focus to a control }

void CUdpSDlg::OnPaint()

{

if (IsIconic())

{

CPaintDC dc(this); // device context for painting

SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

// Center icon in client rectangle

int cxIcon = GetSystemMetrics(SM_CXICON);

int cyIcon = GetSystemMetrics(SM_CYICON);

CRect rect;

GetClientRect(&rect);

int x = (rect.Width() - cxIcon + 1) / 2;

int y = (rect.Height() - cyIcon + 1) / 2;

// Draw the icon

dc.DrawIcon(x, y, m_hIcon);

}

else

{

CDialog::OnPaint();

}

}

void CUdpSDlg::OnButton1()

{

// TODO: Add your control notification handler code here

CString str="";

int n=sizeof(addr1);

GetDlgItem(IDC_EDIT2)->GetWindowText(str);

if

(::sendto(s,str.GetBuffer(1),str.GetLength(),0,(sockaddr*)&addr1,n))/ /发数据到客户端

{

}

GetDlgItem(IDC_EDIT2)->SetWindowText("");

}

void CUdpSDlg::OnDestroy()

{

CDialog::OnDestroy();

// TODO: Add your message handler code here

closesocket(s);

if(WSACleanup())

{

MessageBox("卸载Winsock dll 失败");

return;

}

}

客户端代码

void CUdpCDlg::OnSocket(WPARAM wParam,LPARAM lParam)

{

char cs[100]=""; //定义数据缓冲区

if(lParam==FD_READ) //如果是套接字读取时间

{

CString num=""; //定义字符串变量

int n=sizeof(addr1);

::recvfrom(s,cs,100,0,(sockaddr*)&addr1,&n); //接收客户端信息GetDlgItem(IDC_EDIT1)->GetWindowText(num); //获取消息框中的内容

num+="\r\n 服务器说:"; //添加回车换行符

num+=(LPTSTR)cs; //将接收到的数据转换为字符串

GetDlgItem(IDC_EDIT1)->SetWindowText(num); //设置消息框内容

}

}

OOL CUdpCDlg::OnInitDialog()

{

CDialog::OnInitDialog();

// Set the icon for this dialog. The framework does this automatically

// when the application's main window is not a dialog

SetIcon(m_hIcon, TRUE); // Set big icon

SetIcon(m_hIcon, FALSE); // Set small icon

// TODO: Add extra initialization here

WORD version = MAKEWORD(2,0);

WSADATA wsadata;

if(WSAStartup(version,&wsadata))

{

MessageBox("加载Winsock dll 失败");

return true;

}

s=::socket(AF_INET,SOCK_DGRAM,0);

:: WSAAsyncSelect(s,this->m_hWnd,WM_SOCKET, FD_READ);//将套接字设置为异步模式

return TRUE; // return TRUE unless you set the focus to a control }

void CUdpCDlg::OnPaint()

{

if (IsIconic())

{

CPaintDC dc(this); // device context for painting

SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

// Center icon in client rectangle

int cxIcon = GetSystemMetrics(SM_CXICON);

int cyIcon = GetSystemMetrics(SM_CYICON);

CRect rect;

GetClientRect(&rect);

int x = (rect.Width() - cxIcon + 1) / 2;

int y = (rect.Height() - cyIcon + 1) / 2;

// Draw the icon

dc.DrawIcon(x, y, m_hIcon);

}

else

{

CDialog::OnPaint();

}

}

void CUdpCDlg::OnButton1()

{

// TODO: Add your control notification handler code here

CString str="";

CString str1; //定义字符串

int port; //定义端口变量

GetDlgItem(IDC_EDIT3)->GetWindowText(str); //获取服务器地址GetDlgItem(IDC_EDIT4)->GetWindowText(str1); //获取端口号

port=atoi(str1.GetBuffer(1)); //将端口字符串转换为数字

addr.sin_family=AF_INET;

addr.sin_addr.S_un.S_addr=inet_addr(str.GetBuffer(1));

//转换服务器IP 地址

addr.sin_port=htons(port);

int n=sizeof(addr);

GetDlgItem(IDC_EDIT2)->GetWindowText(str);

if

(::sendto(s,str.GetBuffer(1),str.GetLength(),0,(sockaddr*)&addr,n))//发送数据到客户端

{

}

GetDlgItem(IDC_EDIT2)->SetWindowText("");

}

void CUdpCDlg::OnDestroy()

{

CDialog::OnDestroy();

// TODO: Add your message handler code here

closesocket(s);

if(WSACleanup())

{

MessageBox("卸载Winsock dll 失败");

return;

}

}

计算机网络技术实验6

实验六TCP/IP协议集中常用网络命令的使用 【实验目的】 (1)了解并熟悉TCP/IP协议集中常用网络命令的功能。 (2)了解并熟悉TCP/IP协议集中常用网络命令的操作。 【实验内容】 6.1 使用Ping工具进行测试 Ping 无疑是网络中使用最频繁的小工具,主要用于测定网络的连通性。Ping 程序使用ICMP协议简单地发送一个网络包并请求应答,接收请求的目的主机再次使用ICMP发回同其接收的数据一样的数据,于是Ping 便可对每一个包的发送和接收报告往返时间,并报告无响应包的百分比,这在确定网络是否正确连接,以及网络连接的状况(包丢失率)十分有用。Ping 是Windows 操作系统集成的TCP/IP应用程序之一,可在“开始”里的“运行”中直接执行。 6.1.1 Ping工具的命令格式和参数说明 Ping 命令格式为:ping [-t] [-a] [-n count] [-l length] [-f] [[-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [k computer-list]] [-w timeout] destination-list 主要参数说明如下: —t Ping 指定的计算机直到中断; —a 将地址解析为计算机名; —n count 发送count指定的ECHO数据包数。默认值为4; —l length 发送包含由length 指定数据量的ECHO 数据包。默认值为32字节;最大值是65527; —f 在数据包中发送“不要分段”标志,数据包就不会被路由上的网关分段; —i ttl 将“生存时间”字段设置为ttl指定的值; —v tos 将“服务类型”字段设置为tos指定的值; —r count 在“记录路由”字段中记录传出和返回数据包的路由,count可以指定最少1台,最多9台计算机; —s count 指定count 指定的跃点数的时间戳; —j computer–list 利用computer–list 指定的计算机列表路由数据包,连续计算机可被中间网关分隔(路由稀疏源),IP允许的最大数量为9; —k computer–list 利用computer–list 指定的计算机列表路由数据包,连续计算机可被中间网关分隔(路由稀疏源),IP允许的最大数量为9; —w timeout 指定超时间隔,单位为毫秒; —destination–list 指定要Ping 的远程计算机。

计算机网络实验

广州大学学生实验报告 开课学院及实验室:计算机学院 2015年月11日10日 一、实验目的 理解上述知识点所涉及的基本概念并学会使用这些工具测试网络的状态及从网上获取信息。 二、实验环境 安装了TCP/IP协议的Windows系统的计算机 三、实验内容 1、检测本机的MAC地址 2、检测本机网关的MAC地址 3、检测本地域名服务器的IP地址 4、检测DHCP服务器的MAC地址(考虑两种网络环境:实验室网络环境和宿舍网络环境) 5、检测去往https://www.wendangku.net/doc/7b681555.html,的路径MTU 6、检测本机的路由表 7、检测去往https://www.wendangku.net/doc/7b681555.html,n网络的可用性、回程响应时间及经过的路由器个数。 8、检测本机的所有有效连接,及各连接的端口号 9、往路由表添加一条路由,去往主机https://www.wendangku.net/doc/7b681555.html,的路由,经过邻居同学的主机转发 10、课后实验并写入实验报告: ●为了确定你所在组织的路由是否稳定,使用路由跟踪程序来找到去往每一网络中 的一条路由,重复测试一次,再连续测试几天,看看路由有变化吗? ●挑选10个Internet中较远的目的地,进行前一练习中的实验,看看路由变化的频 度。 ●上网收集网络测试工具并测试使用方法。 四、实验步骤、记录和结果 实验1:检测本机的MAC地址 用ipconfig/all命令可以查看到本机的信息,包括MAC地址、IP地址等

实验2:检测本机网关的MAC地址:从上述可知网关ip为202.192.33.254,再输入Arp –a 202.192.33.254 由ipconfig/all命令可得到本机网关的IP地址为:172.18.36.254,通过ping网关的IP 地址后用arp -a命令可得到本机网关的MAC地址为:00-0c-db-c9-71-c0 实验3:检测本地域名服务器的IP地址:直接输入ping https://www.wendangku.net/doc/7b681555.html, 由ipconfig/all命令可得到本地域名服务器的IP地址为:202.192.18.10

《计算机网络原理》实验

交换机的基本配置 一、实验目的 1.掌握交换机命令行各种操作模式及其相互切换。 2.掌握交换机的全局配置。 3.掌握交换机端口的基本配置。 4.掌握交换机配置的查看方法。 二、实验设备 S2126G交换机一台,PC机两台,直连线一条。 三、技术原理 交换机是一种基于MAC地址识别,能完成封装、转发数据包功能的网络设备。交换机可以学习MAC地址,并把其存放在内部地址表中,通过在数据包的始发者和目标接收者之间建立临时的交换路径,使数据包直接由源地址到达目的地址。 交换机有以下四种命令行操作模式: 1.用户模式,提示符为switch>,这是进入交换机后得到的第一个模式,该模式下可以查看交换机的软硬件版本信息,并进行简单的测试。用户模式下输入enable即可进入下面的特权模式。 2.特权模式,提示符为switch#,这是由用户模式进入的下一个模式,该模式下可以对交换机的配置文件进行管理和查看。特权模式下输入configue terminal即可进入下面的全局配置模式。 3.全局配置模式,提示符为switch(config)#,属于特权模式的下一级模式,该模式下可以配置交换机的全局性参数(如主机名、登陆信息等)。全局模式下输入类似interface fastethernet 0/5即可进入下面的端口模式。 4.端口模式,提示符为switch(config-if)#,属于全局模式的下一级模式,该模式下可以对交换机的端口进行参数配置。 可以通过exit命令退回到当前模式的上一级操作模式,通过end命令从特权模式以下级别直接返回到特权模式。 交换机的端口速率参数有10(10Mbit/s)、100(100Mbit/s)、auto(自适应)等三种选择,默认是auto。端口工作模式有full(全双工)、half(半双工)、auo(自适应) 等三种选择,默认是auto。 四、实验步骤 1.按图1-1将PC机通过串口(Com)连接到交换机Switch的控制(Console)端口,通过网卡(NIC)连接到交换机的F0/1端口。 图1-1

计算机网络实验

试验一 利用wireshark抓包工具抓包 一、实验名称 使用网络协议分析仪 Wireshark 二、实验目的 1. 掌握安装和配置网络协议分析仪Wireshark的方法; 2. 熟悉使用Wireshark工具分析网络协议的基本方法,加深对协议格式、协议层次和协议交互过程的理解。 三、实验内容和要求 1. 安装和配置Wireshark的网络协议分析仪,下载地址https://www.wendangku.net/doc/7b681555.html,。 2. 使用并熟悉Wireshark分析协议的部分功能。 四、实验环境 1.Windows7 操作系统PC机器。 2.PC机器具有以太网卡一块,通过双绞线与局域网连接。 3.Wireshark软件(Wireshark-win64-2.0.2)。 五、操作方法与实验步骤 1:安装网络协议分析仪,从官网下载exe软件双击安装Wireshark-win64-2.0.2。

2:启用Wireshark进行试验。 2.1:启动初始如下显示: 2.2:分组捕获数据,并将捕获的数据保存为文件抓包实验数据.pcapng,当再次需要捕获时,可以打开文件在进行实验抓包。2.3:对数据进行协议分析。 在上部“俘获分组的列表”窗口中,有编号(No)、时间(Time)、源地址(Source)、目的地址(Destination)、协议(Protocol)、长度(Length)和信息(Info)等列(栏目),各列下方依次排列着俘获的分组。中部“所选分组首部的细节信息”窗口给出选中帧的首部详细内容。下部“分组内容”窗口中是对应所选分组以十六进制数和ASCII 形式的内容。 2.4无线网连接抓包实验数据如下图1 2.5本地连接网页抓包实验数据如下图2

网络程序设计实验报告-Winsock编程接口实验

网络程序设计 实验报告 实验名称: Winsock编程接口实验 实验类型:____验证型实验_____ __ 指导教师:______________________ 专业班级:_____________________ 姓名:_______________________ 学号:_____________________ 电子邮件:____________ 实验地点:______ _______ 实验日期2013 年 3 月29 日 实验成绩:__________________________

一、实验目的 ●掌握Winsock的启动和初始化; ●掌握gethostname(),gethostbyname(),GetAdaptersInfo()等信息查询函数的使用。 二、实验设计 由实验内容可以知道: 1、编写程序能同时实现对多个域名的解析。比如在控制台输入:getip https://www.wendangku.net/doc/7b681555.html, https://www.wendangku.net/doc/7b681555.html,,能输出https://www.wendangku.net/doc/7b681555.html,和https://www.wendangku.net/doc/7b681555.html,对应的IP地址列表。 2、编写程序获取并输出本地主机的所有适配器的IP地址,子网掩码,默认网关,MAC 地址。 首先要了解一些基本的知识gethostname(),gethostbyname(),GetAdaptersInfo()等信息查询函数的基本知识gethostbyname()返回对应于给定主机名的包含主机名字和地址信息的hostent结构指针。结构的声明与gethostaddr()中一致。 之后要根据内容画出函数流程图

三、实验过程(包含实验结果) 1.在实验过程中调用GetAdaptersInfo()时,出现了undeclared identifier的报错,原因是没有包含其头文件,之后进行一些修改解决了问题. 2.实验结果 3.选择查看本机信息 四、讨论与分析 1.Winsock初始化的作用是什么? 答:使用winsock初始化可加载winsock编程的动态链接库。

计算机网络实验

实验四IEEE 802.3协议分析和以太网 一、实验目的 1、分析802.3协议 2、熟悉以太网帧的格式 二、实验环境 与因特网连接的计算机网络系统;主机操作系统为windows;Ethereal、IE 等软件。 三、实验步骤 (注:本次实验先完成前面的“1 俘获并分析以太网帧”,并回答好后面的第1-10 题,完成后看书学习一下arp的相关内容) 1、俘获并分析以太网帧 (1)清空浏览器缓存(在IE窗口中,选择“工具/Internet选项/删除文件”命令)。(2)启动Ethereal,开始分组俘获。 (3)在浏览器的地址栏中输入: https://www.wendangku.net/doc/7b681555.html,/ethereal-labs/HTTP-ethereal-lab-file3.html,浏览器将显示冗长的美国权力法案。 (4)停止分组俘获。首先,找到你的主机向服务器https://www.wendangku.net/doc/7b681555.html,发送的HTTP GET报文的分组序号,以及服务器发送到你主机上的HTTP 响应报文的序号。其中,窗口大体如下。

选择“Analyze->Enabled Protocols”,取消对IP复选框的选择,单击OK(不这样设置也可,建议先不要这样操作)。窗口如下。 (5)选择包含HTTP GET报文的以太网帧,在分组详细信息窗口中,展开Ethernet II信息部分。根据操作,回答“四、实验报告内容”中的1-5题(6)选择包含HTTP 响应报文中第一个字节的以太网帧,根据操作,回答“四、实验报告内容”中的6-10题 2、ARP (1)利用MS-DOS命令:arp 或c:\windows\system32\arp查看主机上ARP缓

计算机网络原理实验五

实验五、TCP 协议分析实验报告 序号:姓名:学号:成绩 1.实验目的: 理解TCP报文首部格式和字段的作用,TCP连接的建立和释放过程,TCP数据传输过程中编号与确认的过程。 2.实验环境: 连网环境,可以是局域网,也可以是连入Internet的单机。 3.实验步骤: (1)启动Etherel协议分析软件,并开始抓包。 (2)启动某个基于TCP的应用程序,例如连接某个FTP站点,或通过浏览器访问某个网页。 (3)等出现浏览的网页后停止数据包的捕获。 (4)出现协议分析界面,将filter 一栏填入tcp,则只显示TCP协议信息,通过此信息,可以看到TCP连接的三次握手过程和协商的初始的序列号,数据传输过程以及拆除连接的相应信息。 4.实验分析,回答下列问题 打开捕获文件tcp-ethereal-trace-1,通过捕获的数据包分析TCP建立连接的三次握手的过程,并将TCP建立连接过程中的三个报文填写下来。 字段名称第一条报文第二条报文第三条报文 报文序号 6 7 8 Sequence Number 0 0 1 Acknowedgement Numbber 0 1 1 ACK 0 1 1 SYN 1 1 0 (1)TCP建立连接时的三个报文,其报文首部与其他TCP报文有什么不同? TCP在建立连接时的三个报文,在报文首部比别的报文多了OPTION的字段 (2)报文首部的OPTION字段的作用是什么?值为多少? 至少一字节的可变长字段,标识哪个选项有效。如果没有选项,这个字节等于0。说明选项的结束。这个字节等于1,表示无需再有操作 它的值为至少一个字节的可变长字段的长度。 (3)分析TCP数据传输阶段的前8个报文,将报文信息填入到表中 报文序号报文种类 (发送/确 认)序号字段确认号字 段 数据长度被确认报 文序号 9 确认 1 764 436 8

网络编程实验报告

实验一TCP Socket API程序设计 一、预备知识 1.网络编程基本概念 网络上的计算机间的通讯,实质上是网络中不同主机上的程序之间的通讯。在互联网中使用IP地址来标识不同的主机,在网络协议中使用端口号来标识主机上不同进程,即使用(IP地址,端口号)二元组。 套接字(Socket)用于描述IP地址和端口,是一个通信链的句柄,通信时一个网络程序将要传输的一段信息写入它所在主机的Socket中,该Socket通过与网络接口卡相连的传输介质将这段信息发送到另一台主机的Socket中,以供其他程序使用。 图1-1 TCP通信流程 2.TCP通信流程 TCP程序是面向连接的,程序运行后,服务器一直处于监听状态,客户端与

服务器通信之前必须首先发起连接请求,由服务器接收请求并在双方之间建立连接后才可以互相通信。 二、实验目的 1.了解Winsock API编程原理; 2.掌握TCP Socket程序的编写; 3.了解C/S模式的特点; 4.学会解决实验中遇到的问题。 三、实验任务 使用Winsock API相关类实现TCP Socket通信程序,并能成功运行。 四、实验环境及工具 1. Windows2000/XP/7 2. Visual C++开发平台 3. Visual Studio2010 五、实验内容和步骤 参照《Visual C++网络编程教程》书中81页,TCP Socket API程序设计。 连接: void CChatClientDlg::OnConnect() { WSADATA wsd; //WSADATA结构 WSAStartup(MAKEWORD(2,2),&wsd); //加载协议,使用Winsock 2.2版 m_client = socket(AF_INET,SOCK_STREAM,0); //创建流式套接字 //服务器地址 sockaddr_in serveraddr; UpdateData(); if(ServerIP.IsBlank()) { AfxMessageBox("请指定服务器IP!"); return; } if(sPort.IsEmpty()) { AfxMessageBox("请指定端口!"); return; }

计算机网络实验一_

计算机网络滑动窗口 实验报告 班级:2012211306 学号:2012211249 姓名:查凯文

一.实验目的 通过上机编程模拟滑动窗口协议中的协议6——选择性重传协议,熟悉和掌握协议6的基本概念、基本原理以及实现方法和过程,并与协议5进行对比,加深对滑动窗口协议的理解和认识。 二.实验内容 在Linux、WindowsNT下编程模拟实现滑动窗口协议的1bit滑动窗口协议,需要分别实现发送方功能与接收方功能。 三.实验说明 a)窗口机制 滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口。发送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同。不同的滑动窗口协议窗口大小一般不同。发送方窗口内的序列号代表了那些已经被发送,但是还没有被确认的帧,或者是那些可以被发送的帧。 分析: ①初始态,发送方没有帧发出,发送窗口前后沿相重合。接收方0号窗口打开,等待接收0号帧; ②发送方打开0号窗口,表示已发出0帧但尚确认返回信息。此时接收窗口状态不变; ③发送方打开0、1号窗口,表示0、1号帧均在等待确认之列。至此,发送方打开的窗口数已达规定限度,在未收到新的确认返回帧之前,发送方将暂停发送新的数据帧。接收窗口此时状态仍未变; ④接收方已收到0号帧,0号窗口关闭,1号窗口打开,表示准备接收1号帧。此时发送窗口状态不变; ⑤发送方收到接收方发来的0号帧确认返回信息,关闭0号窗口,表示从重发表中删除0号帧。此时接收窗口状态仍不变;

⑥发送方继续发送2号帧,2号窗口打开,表示2号帧也纳入待确认之列。至此,发送方打开的窗口又已达规定限度,在未收到新的确认返回帧之前,发送方将暂停发送新的数据帧,此时接收窗口状态仍不变; ⑦接收方已收到1号帧,1号窗口关闭,2号窗口打开,表示准备接收2号帧。此时发送窗口状态不变; ⑧发送方收到接收方发来的1号帧收毕的确认信息,关闭1号窗口,表示从重发表中删除1号帧。此时接收窗口状态仍不变。 b)选择重传协议 在后退n协议中,接收方若发现错误帧就不再接收后续的帧,即使是正确到达的帧,这显然是一种浪费。另一种效率更高的策略是当接收方发现某帧出错后,其后继续送来的正确的帧虽然不能立即递交给接收方的高层,但接收方仍可收下来,存放在一个缓冲区中,同时要求发送方重新传送出错的那一帧。一旦收到重新传来的帧后,就可以原已存于缓冲区中的其余帧一并按正确的顺序递交高层。这种方法称为选择重发(SELECTICE REPEAT),其工作过程如图所示。显然,选择重发减少了浪费,但要求接收方有足够大的缓冲区空间。

计算机网络原理实验报告

多线程Web服务器 1实验目的: 用JA V A语言开发一个多线程的WEB服务器,它能并行服务于多个请求。发送网页文件,让网页文件能够通过在URL中制定端口号来被浏览器使用。 2实验代码及截图 class ConnectionThread extends Thread { Socket client; int counter; public ConnectionThread(Socket cl,int c) { client = cl; counter = c;

} public void run() // 线程体 { try { String destIP=client.getInetAddress().toString(); // 客户机IP地址 int destport=client.getPort(); // 客户机端口号 System.out.println("Connection "+counter+":connected to "+destIP+" on port "+destport+"."); PrintStream outstream=new PrintStream(client.getOutputStream()); DataInputStream instream=new DataInputStream(client.getInputStream()); String inline=instream.readLine(); // 读取Web浏览器提交的请求信息 System.out.println("Received:"+inline); if (getrequest(inline)) { // 如果是GET请求 String filename=getfilename(inline); File file=new File(filename); if (file.exists()) { // 若文件存在,则将文件送给Web 浏览器 System.out.println(filename+" requested."); outstream.println("HTTP/1.0 200 OK"); outstream.println("MIME_version:1.0"); outstream.println("Content_Type:text/html"); int len=(int)file.length(); outstream.println("Content_Length:"+len); outstream.println(""); sendfile(outstream,file); // 发送文件 outstream.flush(); } else { // 文件不存在时 String notfound="Not Found

Error 404-file not found

"; outstream.println("HTTP/1.0 404 no found");

计算机网络实验报告实验6

实验六组网设计与配置 班级:电技141班 小组成员: XXX xxxxxx (25%) XXX xxxxxx (20%) XXX xxxxxx (20%) XXX xxxxxx (20%) XXX xxxxxx (15%)

实验六组网设计与配置实验 一、实验目的 1. 通过组网设计,掌握小型网络的组建,路由的设计,对小型网络系统进行分析,提出建网解决方案。 2. 综合运用路由、VLAN的相关技术。 3. 综合运用VLAN创建、Access和Trunk接口配置、VLAN间路由配置,以及动态路由配置,实现小型网络的互连互通。 二、实验环境 配置网卡的计算机。华为eNSP模拟软件。交换机与路由器。 三、实验内容 1. 根据要求建立网络拓扑。 2. 根据要求完成交换机VLAN设置,路由器的动态路由配置,实现网内各计算机的互联互通。 四、需求分析 本实验的目的在于建立小型局域网。由于公司有不同部门组成,并分布在不同地点,因此需要划分不同网络实现互联互通。设计以下网络:两个部门各使用一台交换机连接,然后连接到总交换机,再通过路由器与外网以及其他部门网络相连。为了控制网络上的广播风暴,增加网络的安全性,在交换机上需要设置VLAN,在路由器与交换机之间需要设置动态路由RIP协议。 五、实验网络拓扑图 实验拓扑中: 1、地点1包括部门1和部门2;地点2包括部门3。 2、部门1网络为子网4:10.0.4.0/24,对应VLAN4。 3、部门2网络为子网8:10.0.8.0/24,对应VLAN8。 4、部门1、部门2的计算机分别通过交换机S1、S2接入,然后通过总交换机S3互连。 5、S3连接路由器R1,R1一方面公司外网,一方面通过R2与地点2的部门3网络子网7:10.0.7.0/24 相连。 六.实验步骤

计算机网络实验三

计算机网络实验三

仲恺农业工程学院实验报告纸 自动化(院、系)自动化专业 122 班___ 组计算机通信网课 实验三虚拟局域网VLAN 第一部分:交换机端口隔离. 【实验名称】 交换机端口隔离. 【实验目的】 理解Port Vlan的配置,了解VLAN的原理,熟练掌握交换机端口隔离划分虚拟局 【背景描述】 假设此交换机是宽带小区城域网中的一台楼道交换机,住户PC1连接在交换机的 fa0/5口;住户PC2连接在交换机的fa0/15口,住户pc3连接在fa0/1口.现要实现各家各户 的端口隔离. 【实现功能】 通过PORT VLAN实现本交换机端口隔离. (通过虚拟局域网技术可以隔离网络风暴, 提高网络的性能,降低无用的网络开销。并能提高网络的安全性,保密性。) 【实现拓扑】 Switch PC1 PC2 【实验设备】 S2126G 1台、PC机 【实验步骤】 步骤1.搭建一个小型局域网的拓扑,使得一台可网管的交换机,通过普通快速以太 网端口f0/1、f0/2、f0/10与多台PC,使用直连线相连接。

并给三台PC机配置IP,要求所有IP属于同一个网段。保证三台PC两两之间互相能够ping通。截图于此 switchA#configure terminal !进入交换机全局配置模式 switchA(config)#vlan 2 !创建VLAN2 switchA(config-vlan)#name wxk01 !将其命名为wxk01 switchA(config-vlan)#exit!退出VLAN 01 switchA(config)#vlan 3 !创建VLAN 02 switchA(config-vlan)#name wxk02 !将其命名为wxk02 switchA(config-if)#exit 验证测试 使用命令show vlan和show running-config查看与刚才有何不同。 switchA#show vlan 步骤2.将接口分配到VLAN. switchA(config)#interface fa0/1 !进入fa0/1的接口配置模式。 switchA(config-if)#switch mode access switchA(config-if)#switch access vlan 2 !将fa 0/1 端口加入VLAN 2中。switchA(config-if)#exit switchA(config)#interface fa 0/2 !进入fa0/2的接口配置模式。 switchA(config-if)#switch mode access switchA(config-if)#switch access vlan 3 !将fa 0/2 端口加入VLAN 3中。switchA(config-if)#exit 验证测试 switchA#show vlan 步骤3.测试任两台PC互相PING不通.

计算机网络实验六rip路由协议配置

太原理工大学现代科技学院计算机通信网络课程实验报告专业班级 学号 姓名 指导教师

实验名称 同组人 专业班级 学号 姓名 成绩 一、实验目的 《计算机通信网络》实验指导书 掌握RIP 动态路由协议的配置、诊断方法。 二、实验任务 1、配置RIP 动态路由协议,使得3 台Cisco 路由器模拟远程网络互联。 2、对运行中的RIP 动态路由协议进行诊断。 三、实验设备 Cisco 路由器3 台,带有网卡的工作站PC2 台,控制台电缆一条,交叉线、V35 线若干。 四、实验环境 五、实验步骤 1、运行Cisco Packet Tracer 软件,在逻辑工作区放入3 台路由器、两台工作站PC ,分别点击各路由器,打开其配置窗口,关闭电源,分别加入一个2 口同异步串口网络模块(WIC-2T ),重新打开电源。然后,用交叉线(Copper Cross-Over )按图6-1(其中静态路由区域)所示分别连接路由器和各工作站PC ,用DTE 或DCE 串口线缆连接各路由器(router0 router1),注意按图中所示接口连接(S0/0 为DCE ,S0/1 为DTE )。 2、分别点击工作站PC1、PC3,进入其配置窗口,选择桌面(Desktop )项,选择运行IP 设置(IP Configuration ),设置IP 地址、子网掩码和网关分别为 PC1 PC3 3、点击路由器R1,进入其配置窗口,点击命令行窗口(CLI )项,输入命令对路由器配置如下: 点击路由器R2,进入其配置窗口,点击命令行窗口(CLI )项,输入命令对路由器配………… ……… …… ………… …装… …… ……… … …… … …… … …… 订 …… … …… … …… … …… … …… … …

计算机网络实验实验

计算机网络实验实验报告 姓名:张程程 学号:1202100110 班级:电气自动化类121班实验一、网络基本知识及网线的制作 实验目的: 1、使学生掌握基本的网络知识; 2、使学生掌握RJ-45接头的制作。 实验内容: 1、阅读预备知识掌握网络基础知识; 2、一般双绞线的制作 3、交叉双绞线的制作 4、测试一般双绞线的导通性 思考问题: 1、交换机与集线器的区别 答:(1)在OSI/RM中的工作层次不同 交换机和集线器在OSI/RM开放体系模型中对应的层次就不一样,集线器是同时工作在第一层(物理层)和第二层(数据链路层),而交换机至少是工作在第二层,更高级的交换机可以工作在第三层(网络层)和第四层(传输层)。 (2)交换机的数据传输方式不同 集线器的数据传输方式是广播(broadcast)方式,而交换机的数据传输是有目的的,数据只对目的节点发送,只是在自己的MAC 地址表中找不到的情况下第一次使用广播方式发送,然后因为交换机具有MAC地址学习功能,第二次以后就不再是广播发送了,又是有目的的发送。这样的好处是数据传输效率提高,不会出现广播风暴,在安全性方面也不会出现其它节点侦听的现象。具体在前面已作分析,在此不再赘述。 (3)带宽占用方式不同 在带宽占用方面,集线器所有端口是共享集线器的总带宽,而交换机的每个端口都具有自己的带宽,这样就交换机实际上每个端口的

带宽比集线器端口可用带宽要高许多,也就决定了交换机的传输速度比集线器要快许多。 (4)传输模式不同 集线器只能采用半双工方式进行传输的,因为集线器是共享传输介质的,这样在上行通道上集线器一次只能传输一个任务,要么是接收数据,要么是发送数据。而交换机则不一样,它是采用全双工方式来传输数据的,因此在同一时刻可以同时进行数据的接收和发送,这不但令数据的传输速度大大加快,而且在整个系统的吞吐量方面交换机比集线器至少要快一倍以上,因为它可以接收和发送同时进行,实际上还远不止一倍,因为端口带宽一般来说交换机比集线器也要宽许多倍。 2、常见的局域网拓扑结构有哪些 答:目前常见的网络拓扑结构主要有以下四大类: (1)星型结构 (2)环型结构 (3)总线型结构 (4)星型和总线型结合的复合型结构 3、局域网的几种工作模式 答:目前局域网主要存在着两种工作模式,它们涉及到用户存取和共享信息的方式,它们分别是:客户/服务器(C/S)模式和点对点(Peer-to-Peer)通信模式。 4、T568A、T568B 打线方法 答:在EIA/TIA布线标准中规定了双绞线的两种线序568A与568B。 568A标准:绿白—1,绿—2,橙白—3,蓝—4,蓝白—5,橙—6,棕白—7,棕—8 568B标准:橙白—1,橙—2,绿白—3,蓝—4,蓝白—5,绿—6,棕白—7,棕—8 标准中要求12、36、45、78线必须是双绞。这是因为,在数据的传输中,为了减少 和抑制外界的干扰,发送和接收的数据均以差分方式传输,即每一对线互相扭在一起传输一 路差分信号。 实验二、常用网络命令及网络软件的使用

算法程序设计实验报告

程序设计》课程设计 姓名:王 学号:20100034 班级:软件工程00 班 指导教师:王会青 成绩: 2010年 6 月 实验一.构造可以使n 个城市连接的最小生成树 专业:__软件工程___ 班级:__软件姓名:_王___ 学号:_20100034 完成日期:_2010/6/26 ________ 一、【问题描述】给定一个地区的n 个城市间的距离网,用Prim 算法或Kruskal 算法建立最小生成树,并计算得到的最小生成树的代价。 1 城市间的道路网采用邻接矩阵表示,邻接矩阵的存储结构定义采用课本中给出的定义,若两个城市之间不存在道

路,则将相应边的权值设为自己定义的无穷大值。 2 显示出城市间道路网的邻接矩阵。 3 最小生成树中包括的边及其权值,并显示得到的最小生成树的总代价。 4 输入城市数、道路数→输入城市名→输入道路信息→执行Kruskal 算法→执行Prim 算法→输出最小生成树 二、【问题分析】 1. 抽象数据类型结构体数组的定义: #ifnd ef ADJACENCYMATRIXED// 防止该头文件被重复引用 #define ADJACENCYMATRIXED // 而引起的数据重复定义 #define INFINITY 32767 // 最大值∞ #define MAX_VERTEX_NUM 20 // 最大顶点个数 typedef int VRType; // 权值,即边的值 typedef char InfoType; // 附加信息的类型,后面使用时会定义成一个指针 typedef char VertexType[MAX_VERTEX_NUM]; // 顶点类型 typedef enum {DG=1, DN, UDG, UDN} GraphKind; //{ 有向图,有向网,无向图,无向网} typedef struct ArcCell { VRType adj; //VRType 是顶点关系类型。对无权图,用1 或0 表示相邻否;对带权图,则为权值类型。 InfoType*info; // 该弧关系信息的指针

计算机网络-实验6-网络搭建

实验6:简单网络组建及配置 1.实验目的 1)了解网络建设的相关过程,通过分析用户需求,结合自己掌握到的网络知 识,规划设计网络实施方案。 2)掌握基本的网络设备运行原理和配置技术。 3)独立完成一个简单校园网的基本建设、配置工作,并能发现、分析并解决 简单的网络问题。 4)理论结合实践,深刻理解网络运行原理和相关技术,提高动手能力和应用 技巧。 5)引导学生对相关知识的探索和研究,促进学生的主动学习热情。 2.实验环境 接入Internet的实验主机; Windows xp或Windows7/8; 网络模拟工具:Cisco packet tracer6.2。 3.实验内容 (1)实验项目 某职业技术学校决定新建校园网,网络规划设计师已经完成了该项目的总体规划和设计,部分具体项目规划和设计还没有完成;请你根据所学到的网络知识帮助该网络规划设计师完成剩余的工作内容,并承担整个项目的实施建设工作。 如图 6-1 所示,该网络拓扑采用通用的三层架构设计,分别为接入层、汇聚层和核心层。汇聚层、核心层均采用了冗余链路设计,防止单点故障影响到系统的核心服务。校园网通过购买的ISP服务同 Internet互联,通过有限的公网 IP 地址,利用地址翻译技术(NAT)提供对 Inter net的访问服务支持;通过端口映射技术提供对学校WEB、数据等服务器的外部访问支持。校园网出口布置了防火墙和入侵检测系统,同时提供了VPN访问支持。

图6-1 (2)实验需求 如图6-1所示,在不考虑对外服务(即校园网用户访问Internet和Interne t用户访问校园对外服务器)及冗余链路的前提下,请按用户需求设计出该校园网的局域网部署规划设计,并最终完成各相关区域的各设备连通任务。 用户的相关需求如下,请给出具体的规划设计和实施过程: ①校园中心机房存放网络核心设备、WEB服务器、数据库服务器、流媒体服务器等相关服务器,服务器数量在10台以内,未来可扩展到20台。对全部校园网用户开放,提供7*24小时不间断服务支持。 ②办公区教师和校领导办公区,存放日常办公设备和相关耗材;目前用户数量80左右,未来可以扩展到200;提供无线接入服务,禁止宿舍区用户访问该区资源,允许教学区用户访问该区资源。 ③教学区提供各教学设备网络连接支持。目前,需联网的有线设备数为1 20,未来可扩展到240。 ④宿舍区提供学生上网服务。目前,用户共计700人,未来可扩展到10 00人。

计算机网络实验

杭州电子科技大学 实验报告 学生姓名:韩民杨学号:12081420 指导教师:吴端坡 实验地点:1#108 实验时间:2015-4-24 一、实验室名称:1#108 二、实验项目名称:计算机网络实验1 Coding on error dectecting algorithms(C++) 三、实验学时: 四、实验原理:C++编程 五、实验目的:利用C++编程CRC16校验及奇偶校验 六、实验内容: Coding on error dectecting algorithms(C++) 1.Cyclic redundancy check Using the polynomials below to encode random generated data stream (40-100bits). Show the FEC, and encoded data frame. CRC-4 x4+x+1 ITU G.704 CRC-16 x16+x15+x2+1 IBM SDLC CRC-32 x32+x26+x23+ (x2) x+1 ZIP, RAR, IEEE 802 LAN/FDDI, IEEE 1394, PPP-FCS For the error patter listed below, what the conclusion does the receiver get? Can the receiver find the errors?

Case Error pattern No error 0000 (0000) One error 1000 (000) Two errors 100 (001) Random errors Random error pattern 2.Parity check Using even or odd parity check on random generated data stream (8-20bits). Show encoded data frame. For the error patter listed below, what the conclusion does the receiver get? Can the receiver find the errors? Case Error pattern No error 0000 (0000) One error 1000 (000) Two errors 100 (001) 七、实验器材(设备、元器件): PC机一台,装有C++集成开发环境。 八、实验步骤: #include #include #include #include #include #include #define NO_ERROR 1 #define ONE_ERROR 2 #define TWO_ERROR 3 #define RANDOM_ERROR 4 #define RESULT 1 #define CRC 0 #define Parity 0

计算机网络原理实验六

云南大学软件学院 实验报告 课程:计算机网络原理实验任课教师:刘春花,刘宇 姓名:学号:专业:成绩: 实验六、TCP 协议分析实验报告 序号:姓名:学号:成绩 1.实验目的: 理解TCP报文首部格式和字段的作用,TCP连接的建立和释放过程,TCP数据传输过程中编号与确认的过程。 2.实验环境: 连网环境,可以是局域网,也可以是连入Internet的单机。 3.实验步骤: (1)启动Etherel协议分析软件,并开始抓包。 (2)启动某个基于TCP的应用程序,例如连接某个FTP站点,或通过浏览器访问某个网页。 (3)等出现浏览的网页后停止数据包的捕获。 (4)出现协议分析界面,将filter 一栏填入tcp,则只显示TCP协议信息,通过此信息,可以看到TCP连接的三次握手过程和协商的初始的序列号,数据传输过程以及拆除连接的相应信息。 4.实验分析,回答下列问题 打开捕获文件tcp-ethereal-trace-1,通过捕获的数据包分析TCP建立连接的三次握手的过程,并将TCP建立连接过程中的三个报文填写下来。 (1)TCP建立连接时的三个报文,其报文首部与其他TCP报文有什么不同? 答:会有SYN信息和OPTION字段 (2)报文首部的OPTION字段的作用是什么?值为多少?

答:作用为:表明本端所能接收的最大长度的报文段。 值为 8byte (3)分析TCP数据传输阶段的前8个报文,将报文信息填入到表中 数据传送阶段第一个报文的序号字段值是否等于连接建立时第三个报文的序号? 答:数据传送阶段第一个报文的序号字段值等于连接建立时第三个报文的序号,都为1 (4)捕获一个拆除TCP连接的数据包,附上捕获截图,主要要包含拆除连接的数据包部分,分析TCP释放连接的过程,选择TCP释放连接过程当中的四个报文,将报文信息填在下表。

网络编程实验报告

网络编程技术实验报告 一实验目的: 网络编程技术是计算机科学与技术专业、网络工程专业、软件工程专业的一门专业基础课程。本课程以Java技术为主讲授,Java语言是当前最流行的网络编程语言。本课程是一门实用性和综合运用性都很强的课程,实践教学环节是教学过程中必不可少的重要内容。通过实验,让学生熟悉JDK中的主要内容,掌握用JDK调试和运行程序的方法,掌握网络编程的基本思想和开发方法、面向对象编程的思想,JA V A中的基本方法和技术,能够熟练使用JA V A设计、编写程序,特别是基于TCP/IP的Socket 编程,并能运用这些知识方法完成C/S和B/S结构程序的设计工作。通过实验,提高学生使用Java语言程序设计开发的能力,提高应用面向对象技术分析和解决实际问题的能力,并在此基础上强化学生的实践意识、提高其分析问题、解决问题的能力以及动手能力和创新能力。 二实验要求 要求学生熟悉JDK中的主要内容,掌握用JDK调试和运行程序的方法,掌握网络编程的基本思想和开发方法、面向对象编程的思想,JAVA中的基本方法和技术,能够熟练使用JAVA设计、编写程序,特别是基于TCP/IP的Socket编程,并能运用这些知识方法完成C/S和B/S结构程序的设计工作。要注意培养学生良好的编程习惯,自始至终贯彻课程中所介绍的程序设计风格。为保证尽量在统一安排的上机时间内完成程序设计任务,学生应事先做问题分析,并做静态检查。学生应记录实验中所遇到的问题,并写出详细的实验报告。课前准备上机程序,上机认真调试,课后撰写实验报告,实验报告包括实验目的、实验内容、源程序、实验结果及分析。

. 实验一java基本语法 实验目的: 了解Java的数据类型,掌握各种变量的声明方式,理解运算符的优先级,掌握Java基本数据类型、运算符与表达式,掌握顺序结构、选择结构和循环结构语法的程序设计方法。 实验要求: 1、编写一个声明Java不同数据类型变量的程序。 2、编写使用不同选择结构的程序。 3、编写使用不同循环结构结构的程序。 实验内容: 1、编写一个声明Java不同数据类型变量的程序。 public class DataTypes { public static void main(String args[]) { byte b=127; short s=32767; int i=2147483647; long l=9223372036l;//为什么long表示的数比Int还小? char c='c'; float f=1.23F; double d=0.9E-3; boolean bool=true; System.out.println(" b="+b); System.out.println(" s="+s); System.out.println(" i="+i); System.out.println(" l="+l); System.out.println(" c="+c); System.out.println(" f="+f); System.out.println(" d="+d); System.out.println(" bool="+bool); }

相关文档
相关文档 最新文档