中南大学 软件学院 计算机网络原理 实验报告二

中南大学 软件学院 计算机网络原理 实验报告二
中南大学 软件学院 计算机网络原理 实验报告二

中南大学软件学院

计算机网络

实验报告

实验:实验一

姓名:

班级:

学号:

一、实验名称:socket编程

二、实验目的

本次实验的目的是通过利用Socket编写简单的客户/服务器程序,了解TCP/IP网络的基本通信原理和编程方法,初步掌握TCP/IP网络的传输层上的编程接口(Windows Sockets API),学会利用这些接口来编写简单的网络通信软件。

三、实验要求

利用socket编写简单的客户/服务器程序,比如聊天室、文件传输等。

利用Socket编写简单的客户/服务器程序,关键的问题一是客户端与服务器端如何通信;二是当有多个客户端同时连接到服务器端时,服务器端如何识别每个客户端,并对请求给出相应的回复。同时还要保证一个客户端断开连接时不影响其它客户端与服务器端的通信。这里以实现聊天室程序为例分析实验的关键问题。

1.实现思想

在Internet上的聊天室程序一般都是以服务器提供服务端连接响应,使用者通过客户端程序登录到服务器,就可以与登录在同一服务器上的用户交谈,这是一个面向连接的通信过程。因此,程序要在TCP/IP环境下,实现服务器端和客户端两部分程序。

2服务器端工作流程

服务器端通过socket()系统调用创建一个Socket数组后(即设定了接受连接客户的最大数目),与指定的本地端口绑定bind(),就可以在端口进行侦听listen()。如果有客户端连接请求,则在数组中选择一个空Socket,将客户端地址赋给这个Socket。然后登录成功的客户就可以在服务器上聊天了。

3客户端工作流程

客户端程序相对简单,只需要建立一个Socket与服务器端连接,成功后通过这个Socket来发送和接收数据就可以了。

四、核心代码

客户端SOCKET封装函数

bool CCSUMarketApp::OpenSocket(SOCKET m_hSocket,CString str,char

buff[],int n)

WSADATA wsaData;

WORD version = MAKEWORD(2, 0);

int ret = WSAStartup(version, &wsaData);

if(ret != 0) return false;

// TRACE("Initilize Error!\n");

if(m_hSocket != NULL)

{

closesocket(m_hSocket);

m_hSocket = NULL;

if (WSACleanup() != 0)

{

TRACE("UnInitilize Error:%d\n", WSAGetLastError());

}

}

if(m_hSocket == NULL)

{

m_hSocket = socket(AF_INET, SOCK_STREAM,0);

ASSERT(m_hSocket != NULL);

}//初始化SOCKET

if(buff != NULL)

{

memset(buff,0,256);

}

str+='\0';

int error = 0;

ret = connect(m_hSocket, (LPSOCKADDR)&m_addr, sizeof(m_addr));

if(ret == SOCKET_ERROR)

{

TRACE("Connect Error: %d \n", (error = WSAGetLastError()));

if(error == 10061)

AfxMessageBox(_T("请确认服务器确实已经打开并工作在同样的端口!"));

return false;

}

char* buf = str.GetBuffer(0);

ret = send(m_hSocket, buf, str.GetLength(), 0);

if(ret != str.GetLength()){

TRACE("Send data error: %d\n", WSAGetLastError());

return false;

}

ret = recv(m_hSocket, buff, 256, 0);

if(ret == 0)

{

TRACE("Recv data error: %d\n", WSAGetLastError());

return false;

}

// buff[ret-1] = '$';

closesocket(m_hSocket);

if (WSACleanup() != 0){

TRACE("UnInitilize Error:%d\n", WSAGetLastError());

}

return true;

}

2、服务器端:

void CSimpleserverDlg::StartUp()

{

WSADATA wsaData;

WORD version = MAKEWORD(2, 0);

int ret = WSAStartup(version, &wsaData);

TRACE("Initilize Error!\n");

if(ret != 0)

TRACE("Initilize Error!\n");

}

void CSimpleserverDlg::Onstart()

{

// TODO: Add your control notification handler code here

if(m_hSocket != NULL){

closesocket(m_hSocket);

m_hSocket = NULL;

}

if(m_hSocket == NULL){

m_hSocket = socket(AF_INET, SOCK_STREAM,0);

ASSERT(m_hSocket != NULL);

}

m_addr.sin_family = AF_INET;

m_addr.sin_addr.S_un.S_addr = INADDR_ANY;

m_addr.sin_port = htons(m_nPort);

//bind

int ret = 0;

int error = 0;

ret = bind(m_hSocket, (LPSOCKADDR)&m_addr, sizeof(m_addr));

if(ret == SOCKET_ERROR){

TRACE("Bind Error: %d \n", (error = WSAGetLastError()));

return ;

}

//listen

ret = listen(m_hSocket, 5);

if(ret == SOCKET_ERROR){

TRACE("Listen Error: %d \n", (error = WSAGetLastError()));

return ;

}

//::WSAAsyncSelect(m_hSocket,this->m_hWnd,WM_SOCKT,FD_READ|FD_ACC

EPT);

//block for connection

while (1)

{

m_hSocket = accept(m_hSocket, NULL, NULL);

if(m_hSocket == SOCKET_ERROR){

TRACE("Accept Error: %d \n", (error = WSAGetLastError()));

return ;

}

//::WSAAsyncSelect(m_hSocket,this->m_hWnd,WM_SOCKT,FD_READ|FD_ACC EPT);

//waiting for message

char buff[256];

memset(buff,0,256);

ret = recv(m_hSocket, buff, 256, 0);

if(ret == 0 || ret == SOCKET_ERROR ){

TRACE("Recv data error: %d\n", WSAGetLastError());

return ;

}

// MessageBox(buff);

//judge type of commend

char type = ' ';

type=buff[0];

CString str;

switch(type)

{

case '0':str=LoginMng(buff);//login

break;

case '1':str=InsertMng(buff);//insert & delete

break;

case '3':str=Search(buff);break;

case '4':str=search2(buff);break;

case '8':str=search1(buff);break;

case 'a':str=search3(buff);break;

case 'b':str=search4(buff);break;

break;

default:

{

TRACE(_T("Command error!\n"));

}

break;

}

char* buf = str.GetBuffer(0);

ret = send(m_hSocket, buf, str.GetLength(), 0);

//MessageBox(buf);

if(ret != str.GetLength()){

TRACE("Send data error: %d\n", WSAGetLastError());

return ;

}

}

}

五、实验结果

六、心得体会

本次实验是由WW,WWm,CC三个人组成的小组共同完成的,由于我们三个人都较为熟悉c++语言,所以我们本次实验内容的实现是基于MFC平台的。

我们本次实验是使用C/S结构,利用SOCKET来实现客户端与服务器的交互,利用ADO实现服务器端与数据库之间的交互,具体的交互流程为:客户端根据用户的操作向服务器端发送相应的SQL语句以及语句的类型,服务器端将SQL语句从接收到的字符串中剥离,并与数据库连接得到相应的结果集,然后根据SQL

语句类型返回客户端需要的结果,客户端成功接收到结果之后显示到窗口之中,一次交互结束。

由于在客户端将套接字创建到关闭的过程做了封装,所以每一次交互就变得很简单,也做到了异步的处理。

这个实验让我们熟悉了SOCKET的交互过程,以及SOCKET异步处理的方法,也使我们的编程经验得到了丰富。由于这个项目比较大,所以出现bug是在所难免的,调试的过程也是相当的痛苦,由于模块相对独立,所以我们进行了平均分工,互相借鉴经验,整个过程是相当愉快的,可以说,本次实验是很成功的。

中南大学计算机体系结构实验报告

计算机体系结构实验报告 学院:信息科学与工程学院 专业班级:高赛文的小仙女 指导老师:雷向东 姓名:igot7

目录 实验 1 对指令操作码进行霍夫曼编码 (3) 一、实验目的 (3) 二、实验内容 (3) 三、实验过程 (3) 四、实验结果 (14) 实验 2 使用 LRU 方法更新 Cache (15) 一、实验目的 (15) 二、实验内容 (15) 三、实验过程 (15) 四、实验结果 (18) 实验 3 通道处理过程模拟 (20) 一、实验目的 (20) 二、实验内容 (20) 三、实验过程 (21) 四、实验结果 (22) 实验 4 单功能流水线调度机构模拟 (23) 一、实验目的 (23) 二、实验内容 (23) 三、实验过程 (23) 四、运行结果 (24) 实验总结 (24)

实验 1 对指令操作码进行霍夫曼编码 一、实验目的 1.了解和掌握指令编码的基本要求和基本原理 二、实验内容 1.使用编程工具编写一个程序,对一组指令进行霍夫曼编码,并输出最后的编码结果以及对 指令码的长度进行评价。与扩展操作码和等长编码进行比较。 问题描述以及问题分析: 我们举例说明此问题,例如: 有一组指令的操作码共分七类,它们出现概率如 下表所示: P1 P2 P3 P4 P5 P6 P7 0.45 0.30 0.15 0.05 0.03 0.01 0.01 对此组指令进行HUFFMAN 编码正如下图所示: 最后得到的HUFFMAN 编码如下表所示: 最短编码长度为: H=0.45*1+0.30*2+0.15*3+0.05*4+0.03*5+0.01*6+0.01*6=-1.95. 要对指令的操作码进行HUFFMAN 编码,只要根据指令的各类操作码的出现概率构造HUFFMAN 树再进行HUFFAM 编码。此过程的难点构造HUFFMAN 树,进行HUFFAM 编码只要对你所生成的HUFFMAN 树进行中序遍历即可完成编码工作。 三、实验过程 观察上图 1,不难看出构造 HUFFMAN 树所要做的工作:

武汉大学计算机网络实验报告 (2)

武汉大学教学实验报告 动力与机械学院能源动力系统及自动化专业2013 年11 月10 日

一、实验操作过程 1.在仿真软件packet tracer上按照实验的要求选择无线路由器,一般路由器和PC机构建一个无线局域网,局域网的网络拓扑图如下: 2.按照实验指导书上的表9.1(参数配置表)对路由器,DNS服务器,WWW服务器和PC机进行相关参数的配置: 服务器配置信息(子网掩码均为255.255.255.0) 主机名IP地址默认网关 DNS 202.2.2.1 202.2.2.2 WWW 202.3.3.1 202.3.3.3 路由器配置信息(子网掩码均为255.255.255.0) 主机名型号IP地址默认网关时钟频率ISP 2620XM e1/0:202.2.2.2 e1/1:202.3.3.3 s0/0:202.1.1.2 64000 Router2(Server) 2620XM f0/0:192.168.1.1 s0/0:202.1.1.1 Wireless Router Linksys WRT300N 192.168.1.2 192.168.1.1 202.2.2.1 备注:PC机的IP地址将通过无线路由器的设置自动分配 2.1 对router0(sever)断的配置: 将下列程序代码输到router0中的IOS命令行中并执行,对router0路由器进行设置。Router>en Router#conf t

2.3 WWW服务器的相关配置 对www服务器进行与DNS服务器相似的配置,包括它的IP地址,子网掩码,网关等,具体的相关配置图见下图: WWW服务器的相关配置图

计算机图形学实验报告 (2)

中南大学信息科学与工程学院 实验报告实验名称 实验地点科技楼四楼 实验日期2014年6月 指导教师 学生班级 学生姓名 学生学号 提交日期2014年6月

实验一Window图形编程基础 一、实验类型:验证型实验 二、实验目的 1、熟练使用实验主要开发平台VC6.0; 2、掌握如何在编译平台下编辑、编译、连接和运行一个简单的Windows图形应用程序; 3、掌握Window图形编程的基本方法; 4、学会使用基本绘图函数和Window GDI对象; 三、实验内容 创建基于MFC的Single Document应用程序(Win32应用程序也可,同学们可根据自己的喜好决定),程序可以实现以下要求: 1、用户可以通过菜单选择绘图颜色; 2、用户点击菜单选择绘图形状时,能在视图中绘制指定形状的图形; 四、实验要求与指导 1、建立名为“颜色”的菜单,该菜单下有四个菜单项:红、绿、蓝、黄。用户通过点击不同的菜单项,可以选择不同的颜色进行绘图。 2、建立名为“绘图”的菜单,该菜单下有三个菜单项:直线、曲线、矩形 其中“曲线”项有级联菜单,包括:圆、椭圆。 3、用户通过点击“绘图”中不同的菜单项,弹出对话框,让用户输入绘图位置,在指定位置进行绘图。

五、实验结果: 六、实验主要代码 1、画直线:CClientDC *m_pDC;再在OnDraw函数里给变量初始化m_pDC=new CClientDC(this); 在OnDraw函数中添加: m_pDC=new CClientDC(this); m_pDC->MoveTo(10,10); m_pDC->LineTo(100,100); m_pDC->SetPixel(100,200,RGB(0,0,0)); m_pDC->TextOut(100,100); 2、画圆: void CMyCG::LineDDA2(int xa, int ya, int xb, int yb, CDC *pDC) { int dx = xb - xa; int dy = yb - ya; int Steps, k; float xIncrement,yIncrement; float x = xa,y= ya; if(abs(dx)>abs(dy))

计算机网络原理实验五

实验五、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

操作系统实验报告-中南大学

操作系统原理试验报告 班级: 学号: 姓名:

实验一:CPU调度 一、实验内容 选择一个调度算法,实现处理机调度。 二、实验目的 多道系统中,当就绪进程数大于处理机数时,须按照某种策略决定哪些进程优先占用处理机。本实验模拟实现处理机调度,以加深了解处理机调度的工作。 三、实验题目 1、设计一个按优先权调度算法实现处理机调度的程序; 2、设计按时间片轮转实现处理机调度的程序。 四、实验要求 PCB内容: 进程名/PID; 要求运行时间(单位时间); 优先权; 状态: PCB指针; 1、可随机输入若干进程,并按优先权排序; 2、从就绪队首选进程运行:优先权-1/要求运行时间-1 要求运行时间=0时,撤销该进程 3、重新排序,进行下轮调度 4、最好采用图形界面; 5、可随时增加进程; 6、规定道数,设置后备队列和挂起状态。若内存中进程少于规定道数,可自动从后备 队列调度一作业进入。被挂起进程入挂起队列,设置解挂功能用于将指定挂起进程解挂入就绪队列。 7、每次调度后,显示各进程状态。 实验二:内存管理 一、实验内容 主存储器空间的分配和回收 二、实验目的 帮助了解在不同的存储管理方式下,应怎样实现主存空间的分配和回收。 三、实验题目 在可变分区管理方式下,采用最先适应算法实现主存空间的分配和回收。

四、实验要求 1、自行假设主存空间大小,预设操作系统所占大小并构造未分分区表; 表目内容:起址、长度、状态(未分/空表目) 2、结合实验一,PCB增加为: {PID,要求运行时间,优先权,状态,所需主存大小,主存起始位置,PCB指针} 3、采用最先适应算法分配主存空间; 4、进程完成后,回收主存,并与相邻空闲分区合并 .1、Vo类说明(数据存储结构) 进程控制块PCB的结构: Public class PCB{ //进程控制块PCB,代表一个进程 //进程名,作为进程的标识; private String name; //要求运行时间,假设进程运行的单位时间数; private int time; //赋予进程的优先权,调度时总是选取优先数小的进程先执行; private int priority; //状态,假设有“就绪”状态(ready)、“运行”状态(running)、 //“后备”状态(waiting)、“挂起”状态(handup) private String state; //进程存放在table中的位置 private int start; //进程的大小 private int length; //进程是否进入内存,1为进入,0为未进入 private int isIn; //进程在内存中的起始位置 private int base; //进程的大小 private int limit; //一些get和set方法以及构造器省略… };

计算机网络实验报告-答案.

计算机网络实验报告 专业计算机科学与技术 班级计102 学号 109074057 姓名王徽军 组号一组D 指导教师毛绪纹 安徽工业大学计算机学院 二○一二年十二月

目录 实验总体说明 (3) 实验一以太网帧的构成 (3) 实验三路由信息协议RIP (9) 实验四传输控制协议TCP (11) 实验五邮件协议SMTP、POP3、IMAP (12) 实验六超文本传输协议HTTP (14)

实验总体说明 1.实验总体目标 配合计算机网络课程的教学,加强学生对计算机网络知识(TCP/IP协议)的深刻理解,培养学生的实际操作能力。 2.实验环境 计算机网络协议仿真实验室: 实验环境:网络协议仿真教学系统(通用版)一套 硬件设备:服务器,中心控制设备,组控设备,PC机若干台 操作系统:Windows 2003服务器版 3.实验总体要求 ●按照各项实验内容做实验,记录各种数据包信息,包括操作、观察、记录、分析, 通过操作和观察获得直观印象,从获得的数据中分析网络协议的工作原理; ●每项实验均提交实验报告,实验报告的内容可参照实验的具体要求,但总体上应包 括以下内容:实验准备情况,实验记录,实验结果分析,算法描述,程序段,实验过程中遇到的问题以及对思考问题的解答等,实验目的、实验原理、实验步骤不需要写入实验报告中。 实验一以太网帧的构成 实验时间:_____________ 成绩:________________ 实验角色:_____________ 同组者姓名:______________________________

练习一:领略真实的MAC帧 00000000: FF FF FF FF FF FF 8C 89 A5 75 71 10 06 05 14 55 ..q....U 00000010: 85 48 D2 78 62 13 47 24 58 25 00 00 00 00 00 00 .H襵b.G$X%...... 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000030: 00 00 00 00 00 00 00 00 00 00 00 00 ............ 练习二:理解MAC地址的作用 ●记录实验结果 表1-3实验结果 本机MAC地址源MAC地址目的MAC地址是否收到,为什么 主机B 8C89A5-7570BB 8C89A5-757113 8C89A5-7570C1 是,主机A与主机B接在同一共享模块 主机D 8C89A5-771A47 8C89A5-757113 8C89A5-7570C1 是,主机C与主机D接在同一共享模块 主机E 8C89A5-757110 无无否,与主机A、C都不在同一共享模块 主机 F 8C89A5-7715F8 无无否,与主机A、C都不在同一共享模块 练习三:编辑并发送MAC广播帧 ●结合练习三的实验结果,简述FFFFFF-FFFFFF作为目的MAC地址的作用。 答:该地址为广播地址,作用是完成一对多的通信方式,即一个数据帧可发送给同一网段内的所有节点。 练习四:编辑并发送LLC帧 ●实验结果 帧类型发送序号N(S)接受序号N(R) LLC 001F 0 ●简述“类型和长度”字段的两种含义 答:一是如果字段的值小于1518,它就是长度字段,用于定义下面数据字段的长度;二是如果字段的值大于1536,用于定义一个封装在帧中的PDU分组的类型。 思考问题: 1.为什么IEEE802标准将数据链路层分割为MAC子层和LLC子层? 答:出于厂商们在商业上的激烈竞争,IEEE的802委员会未能形成一个统一的、最佳的局域网标准,而是被迫制定了几个不同标准,如802.4令牌总线网、802.5令牌环网等。为了使数据链路层能更好地适应多种局域网标准,802委员会就将局域网的数据链路层拆成两个子层,即逻辑链路控制

微机原理及应用实验报告

微机原理及应用实验报告 班级:机械1301班 姓名:黄佳清 学号:0801130117 座位号: 中南大学机电工程学院

实验一单片机仿真开发机操作和MCS-51指令系统应用 一.实验目的 1、熟悉MCS-51单片机仿真开发机和开发调试软件的操作使用和调整; 2、学会编写和输入汇编语言源程序、对输入的源程序进行汇编; 3、掌握程序的调试和运行的各种方法。 三.实验内容及步骤(完成分值:60分) 本实验秩序运行Keil uVersion2程序,设置为keil为纯软件仿真 1.新建工程项目 2.设置工程文件参数 3.编写新程序事例 4.调试程序直至能够运行出结果。 四.实验程序 AJMP MAIN ORG 0030H MAIN: MOV R0,#20H MOV R2,#0FH MOV A,#00H A1: MOV @R0,A INC R0 INC A DJNZ R2,A1 MOV R0,#20H ;暂停,观察并记录! MOV DPTR,#7000H MOV R2,#0FH A2: MOV A,@R0 MOVX @DPTR,A INC R0 INC DPTR DJNZ R2,A2 MOV R0,#030H ;断点,观察并记录! MOV DPTR,#7000H MOV R2,#0FH A3: MOVX A,@DPTR MOVX @R0,A INC R0 INC DPTR DJNZ R2,A3 DO: LJMP DO END ;内部存储器数据块赋值,搬运数据块到外部存储器,再搬运回内部数据存储器。 五、附加题 1.将光标移到想要暂停的地方,MOV R0,#20H所在行,选择“执行到光

福建农林大学计算机网络实验报告二

福建农林大学计算机与信息学院 实验报告 2015年10 月27 日

实验项目列表

实验报告 系:计算机科学专业:计算机科学与技术年级: 姓名:学号:实验室号:计算机号: 实验日期:2015 年10 月27 日指导教师签字:成绩: 报告退发(订正、重做) 实验二网络监听实验 一、实验目的 1、理解网络监听原理 2、熟悉网络监听方法 3、理解网络流量 4、掌握TCP/IP的主要协议和协议的层次结构 二、实验环境与设备 本实验在实际因特网环境下进行操作,需要的设备有:一台PC机,WireShark监听软件。WireShark监听软件可从网址:https://www.360docs.net/doc/4715970289.html,/下载。实验配置如图所示。 因特网 三、实验原理 1、网络协议分析器 如果使用Web浏览器或OICQ聊天这样的网络软件,必须有网络连接才能工作,然而,你知道它们在因特网上传送的是什么类型的信息吗? 例如,计算机要对远程Web服务器发送什么数据来获取它需要的网页呢?计算机如何将邮件发给指定的人呢? 可以通过网络协议分析器(如WireShark)来协助观察网络会话的细节。网络协议分析器是一个能记录所有网络分组,并以人们可读的形式显示的软件。在监听重流量网络时,允许用户过滤掉不想要的分组或查看感兴趣的特定分组,而且还能为用户提供所有分组的统计概要。 2、网络监听原理 在共享式局域网中,位于同一网段的每台主机都可以截获在网络中传输的所有数据,正常情况下,一个网卡只响应目的地址为单播地址和广播地址的MAC帧而忽略其它MAC帧,网卡接收这两种帧时,通过CPU产生一个硬件中断,然后由操作系统负责处理该中断,对数据

计算机网络原理实验三winsock套接字编程实验报告

实验三、WINSOCK套接字编程实验报告 序号:姓名:刘易学号: 20101150040 成绩指导老师: 1.实验目的: 用C或JA V A语言编写客户端、服务器程序,实现基于TCP或UDP的网络通信数据传输服务,熟悉基于TCP或UDP的Socket编程原理。 2.实验环境: 建立在TCP/IP 网络体系结构之上计算机网络实验环境。各计算机除了安装TCP/IP 软件外,还安装了TCP/IP 开发系统。计算机具备Windows环境中套接字socket 的编程接口功能,可为用户提供全网范围的进程通信功能。 3.实验指导: 参见套接字编程实验指导 4.实验步骤 (1)运行指导书中给出的参考程序,分析实验结果,并回答问题(1)-(3) (2)根据给定参考程序修改代码,完善修改服务器和客户端的功能。并回答问题(4)-(5) 5.实验结果分析 (1)为什么在服务器和客户端要包含winsock2.h文件? (2)为什么在服务器和客户端程序中要加入#pragma comment(lib,"ws2_32.lib") 语句,如果不加会出现什么问题? (3)为什么在服务器和客户端程序中要使用WSAStartup函数,如果不用,程序会有什么问题? (4)修改后的程序完成实现了什么功能,附上修改后的源代码。(修改或填加的代码用波浪线标注,并填加注释),并附上实验截图

客户端改变的代码: { for(;;) { memset(buf, 0, 1024); printf("Please input a line to server:"); scanf("%s",&buf); rval = send(fd, buf, strlen(buf) + 1,0); if(rval < 0) printf("Write error!"); if((rval=recv(fd,buf,sizeof(buf),0)<0)) perror("reading stream message"); if(rval==0) printf("server said :%s\n",buf); } 服务器端修改的代码: for(;;) { memset(buf, 0, sizeof(buf)); if ( (rval = recv(msgsock, buf, sizeof(buf),0) < 0))

中南大学制造系统自动化技术实验报告整理

制造系统自动化技术 实验报告 学院:机电工程学院 班级:机制**** 姓名:张** 学号: *********** 指导教师:李** 时间: 2018-11-12 实验一柔性自动化制造系统运行实验 1.实验目的 (1)通过操作MES终端软件,实现对柔性制造系统的任务下达和控制加工,让学生

了解智能制造的特征及优势。 (2)通过创意性的实验让学生了解自动化系统总体方案的构思。 (3)通过总体方案的构思让学生了解该系统的工作原理,并学会绘制控制系统流程图,掌握物料流、信息流、能量流的流动路径。 (4)通过总体方案的构思让学生掌握各机械零部件、传感器、控制元器件的工作原理及性能。 (5)通过实验系统运行让学生了解运行的可靠性、安全性是采用何种元器件来实现的,促进学生进行深层次的思考和实践。 2.实验内容 (1)仔细观察柔性自动化制造系统的实现,了解柔性自动化制造系统的各个模块,熟悉各个模块的机械结构。 (2)了解各种典型传动机构的组装、工作原理、以及如何实现运动方向和速度的改变; (3)学习多种传感器的工作原理、性能和使用方法; (4)了解典型驱动装置的工作原理、驱动方式和性能; (5)理解柔性制造系统的工作原理,完成柔性制造系统的设计、组装; (6)实现对柔性制造系统的控制与检测,完成工件抓取、传输和加工。

3.实验步骤 (1)柔性制造系统的总体方案设计; (2)进行检测单元的设计; (3)进行控制系统的设计; (4)上下料机构的组装与检测控制; (5)物料传输机构的组装与实现; (6)柔性制造系统各组成模块的连接与控制; (7)柔性制造系统各组成单元的状态与工件状态位置的检测; (8)对机器人手动操作,实现对工件的抓取、传输。 4. 实验报告 ①该柔性自动化制造系统由哪几个主要的部分组成; 主要由:总控室工作站、AGV小车输送物料机构、安川机器人上下料工作站、法那科机器人上下料工作站、ABB机器人组装工作站、视觉检测及传送工作站、激光打标工作站、堆垛机及立体仓储工作站。 ②画出该柔性自动化制造系统的物料传输系统结构简图;

计算机网络实验二简单共享局域网的组建

计算机网络实验二简单共享局域网的组建

计算机网络实验二简单共享局域网的组建

计算机网络原理实验报告 实验二 简单共享局域网的组建 系别:计算机科学与技术系网络工程方向类型:设计性 班级:1002班 姓名:张磊(2010100244) 日期:2012年 11 月14日

一、实验题目 简单共享局域网的组建 二、实验目的和要求 1.掌握以太网卡与交换机的连接与配置 2.掌握Windows中的TCP/IP或NetBEUI协议的设置 三、实验原理 1. NetBEUI是什么 NetBEUI是网络基本输入输出系统,是局域网上的程序可以使用的应用程序编程接(API)。NetBIOS为程序提供了请求低级服务的统一的命令集,这些服务是管理名称、执行会话和在网络节点之间发送数据报所要求的。 NetBEUI则是NetBIOS的扩展用户接口,是Microsoft网络的本地网络协议。它通常用于小的、有1~200客户的部门大小的局域网。它可 以使用令牌环源路由作为其路由的惟一方法。它是NetBIOS标准的 Microsoft实现。 2.交换机的应用 交换机是交换式网络上设备的公用连接点。交换机包含多个端口。计算机用网线和交换机相连的方法是:将双绞线的一端RJ-45接头插到交 换的一个口上,另一端插到计算机网卡上的RJ-45插座上。如果所有设 备都已接通电源,那么交换机上的连接指示灯就会显示连接状态,可据 此判断网络连接是否正常。 3. 联网计算机的简单设置 实现Windows对等网,应对联网计算机的网络协议、标识、网络客户和服务进行简单的设置。方法如下: (1)添加网络协议 双击“控制面板”—“网络连接”—“本地连接”,打开“本地连 接状态”对话框,单击“属性”,打开“属性”对话框,单击“安 装”,选择“协议”,单击“添加”,出现“选择网络协议”对话框, 选定所要添加的协议。一般Windows的操作系统中都已存在 TCP/IP协议,在Win 2K中需添加NetBEUI协议。 (2)添加服务 同添加协议方式类似,在打开“属性”对话框,单击“安装”,选 择“服务”,单击“添加”,出现“选择网络服务”对话框,选定所 要添加的服务。

计算机网络实验指导书新

计算机网络实验指导书(新版)

————————————————————————————————作者:————————————————————————————————日期: 2

计算机网络 实验指导书 主编郭雅 参编余小华黄锦煜罗肖辉 主审陶培基 I

前言 计算机网络是信息社会的支柱。培养一大批谙熟计算机网络原理与技术,具有综合应用和研发创新能力的人才,是社会信息化的需要,也是高等院校相关专业的教学目的。 编者在本科院校二级学院工作多年,一直担任计算机网络课程及其实验课程的教学工作。包括编者所在学校在内的许多本科院校二级学院采用了谢希仁编著《计算机网络》作为网络基础课程的教材。该教材内容丰富,说理透彻。针对本科院校二级学院学生的特点,教学中应该基础理论和实践并重,各所院校都开出了一定的实验课时。为规范实验内容,严格实验训练,达到实验教学的目的,编者多年来一直对本类院校的实验教学进行探索,研究在课时有限的情况下,如何组织计算机网络实验教学的内容,使之既能配合课堂教学,加深对所学知识的理解,又能紧跟网络技术的发展,培养和提高学生的实际操作技能。在教学实践中,编者一直坚持编写和完善实验指导书,并与选用谢希仁编著《计算机网络》做教材的一些兄弟院校的教师多次交流,修订完成了这本《计算机网络实验指导书》。 本书内容涵盖诠释网络原理,应用组网技术和实施网络管理等几个方面的实验项目十九个。由于编者水平有限,编写时间紧迫,不足与错误在所难免,恳请专家和广大读者不吝批评指正。 参加本书编写的人员有华南理工大学广州学院计算机工程系余小华老师,华南师范大学增城学院教育信息技术部黄锦煜老师,华南师范大学增城学院网络中心罗肖辉老师。 本书由华南师范大学增城学院计算机系主任陶培基教授担任主审。 感谢广东轻工职业技术学院计算机系教授石硕对本书编写和出版所提供的意见、建议和热忱帮助。 编者 2011年6月 于华南师范大学增城学院,广州 E-mail: hsguoya@https://www.360docs.net/doc/4715970289.html, II

中南大学计算机取证技术实验报告

学院:信息科学与工程学院 班级: 学号: 姓名: 指导老师:张健

目录 目录 ------------------------------------------------------------------------------------------------------------------ 0 实验一事发现场收集易失性数据-------------------------------------------------------------------------- 1 实验二磁盘数据映像备份---------------------------------------------------------------------------------- 6 实验三恢复已被删除的数据------------------------------------------------------------------------------ 10 实验四进行网络监听和通信分析------------------------------------------------------------------------- 15 实验五分析Windows系统中隐藏的文件和Cache信息 --------------------------------------------- 19 实验六数据解密 ------------------------------------------------------------------------------------------------ 25 总结 ----------------------------------------------------------------------------------------------------------------- 27

计算机网络原理实验七、传输层可靠传输协议GBN编程实验报告

实验七、传输层可靠传输协议G B N编程实验报告序号:姓名:学号:成绩指导老师: 一、实验目的: 1、通过编写实现一个简单可靠的数据传输协议GBN的发送和接收代码,模拟可靠数据传输 2、理解TCP协议可靠传输的差错检测、重传、累计确认、定时器的可靠传输策略。 二、实验原理: 在GBN中,发送端不需要在接收到上一个数据包的ACK后才发送下一个数据包,而是可以连续发送数据包。在发送端发送数据包的过程中,如果接收到对应已发送的某个数据包的NACK,则发送端将NACK对应的某个数据包进行重发,然后再将该数据包之后的数据包依次进行重发。 三、结果分析: 本次试验中采用java语言进行程序编写 代码注释: (一)S ender类 import java.util.Timer; public class Sender extends Thread{ public int windowsize=3; //发送方窗口长度设为3 public String[] data={"data1","data2","data3", "data4","data5","data6","data7"}; //模拟七个数据包public int sign[]={0,1,2,3,4,5,6}; //为7个数据包标号 public int localack=-1; //保存最近收到的ACK public Timers litime=null; //定时器(这里定为2秒) public int switches=0; //超时标志,1为超时 public int windowsign[]; //当前窗口内待发的数据分组的序号 public int acksign=0;

中南大学微机原理及接口技术实验内容及报告要求

中南大学微机原理及接口技术实验内容及报告要求 一、实验内容: 实验一顺序程序设计与DEBUG使用 题目1.利用串操作传送指今将0FFH送入数据段的0180H开始的128个字节存储单元中,编写一段程序。 题目2.将数据段中0200H字节存储单元中的二位BCD码转换为二个ASCII码送0201H 开始的二个字节单元中,编写—段程序。 题目3.编写一段程序,在内存中自SQTAB(0200H)地址开始的连续十个单元中存放0~9的平方值。要求利用计算法查表求 NUM(0210H)单元中指定数(0~9中的任意一数)的平方值,并将所求平方值存入RESULT(0211H)单元中。 [注]:题目二和题目三可选做一个,题目一必做。 详细实验要求及步骤方法,参见“ DEBUG 实验参考” 实验二键盘、显示程序设计实验(教材P30) 提高部分: 1、显示数据输入提示信息、键盘输入一个字符,屏幕显示字符的ASCⅡ码; 2、显示字符串输入提示信息、键盘输入一个字符串,屏幕显示对应字符串中各字符的ASC Ⅱ码。 实验三数据传送、数码转换程序设计实验(教材P33、35) 提高部分: 1、数据传送,完成20个数据的传送,并对附加段数据进行升序排列,并在屏幕上显示排序后的数据,以及最大数据和最小数据。 2、数据转换,键盘输入2位(或以上)十进制数,分别转换成十六进制数、BCD码、七段共阳极码。 实验四运算类程序设计实验(教材P39) 提高部分:键盘输入5位被减数和减数,计算并以恒等式形式显示在屏幕上(允许被减数< 减数)。 实验五基本I/O接口与地址译码电路设计实验(教材P72、75) 提高部分: 1、在“基本I/O接口电路设计实验”中,如何扩展16路输入、输出功能? 2、在“地址译码电路设计实验”中,将Y6与CS_A、Y7与CS_B,改换成 Y0与CS_A、Y1 与CS_B连接,修改程序并实现实验功能。 实验六 8255接口电路设计实验(教材P95) 提高部分:

计算机网络实验报告

农林大学计算机与信息学院 信息工程类 实验报告 课程名称:计算机网络 姓名: 系:计算机科学与技术系 专业:计算机科学与技术 年级:2011级 学号: 指导教师:周术成老师 职称: 2014年 5 月 4 日

农林大学计算机与信息学院实验报告 系:计算机与信息系专业:计算机科学与技术年级:2011 :学号:实验课程:_ 计算机网络 实验室号____田C-305__ 计算机号:实验时间: 指导教师签字:成绩: 实验一以太网组网实验 1.实验目的和要求 1.熟悉局域网所使用的基本设备 2. 掌握以太网组建方法 3. 掌握网络连通性测试方法 2.实验原理 以太网事实上是一簇局域网技术,不同的以太网在链路层帧头的格式、电缆的类型和传输速度上有很大的差异以太网可以利用同轴电缆、双绞线、光缆等不同的传输介质进行组网,也可以运行10Mb/s、100Mb/s、1000Mb/s 的网络速度。不管采用何种传输介质,以及网络速度各不相同,只要是以太网,采用的都是CSMA/CD介质访问控制方法。即任何结点没有可预约的发送时间,所有结点平等地争用发送时间,并随机地发送数据。 组建局域网常用的传输介质为双绞线,作为10BASE-T 和100BASE-TX 以太网的传输介质,非屏蔽双绞线在组网中起着重要的作用。非屏蔽双绞线UTP 中的8 芯导线采用了不同的颜色,分成4 对,其中橙和橙白一对,绿和绿白一对,蓝和蓝白一对,棕和棕白一对。以太网使用的UTP 分为直通UTP 和交叉UTP。 UTP 双绞线有两种接法:T568A 标准和T568B 标准。 直通UTP:线的两头都按T568B 线序标准连接。 交叉UTP:线的一头按T568A 线序连接,另一头按T568B 线序连接。 组装不同类型的局域网需要不同的设备,10Base-T 和100Base-TX 组网所需要的设备有:UTP 电缆、以太网卡、10M/100M 集线器、以太网交换机等。现在的以太网在逻辑上采用星型拓扑结构,用这种拓扑结 构,每台计算机用电缆线连接到共享网络设备上,如集线器和交换机等。 集线器和交换机都是用以太网接口连接多台设备,然而,它们在实现上有很大不同。集线器是第1 层设备,是以太网的集中连接点,具有信号放大功能,扩大以太网的地理围。通常采用RJ-45 接口,计算 机或其他终端设备通过双绞线电缆与集线器相连。当数据到达集线器的一个端口后,集线器不进行过滤处 理,直接将收到的数据包复制并广播到所有其他的端口,而不管这些端口连接的设备是否需要这些数据。 因此,网络中集线器数量越多,整个网络的性能就越差。 一般以太网的拓扑既用到集线器也用到交换机,集线器连接到交换机端口上,计算机连接到集线器上。在这种配置里,连接在同一集线器的计算机能看到彼此传输的数据,并且一次只能有一个传输;但在

计算机网络原理(实验指导书)

计算机网络原理实验指导书 中原工学院 计算机学院网络工程系 2014年12月10日

实验一Windows系统网络命令的使用 一、实验目的 1. 了解Windows操作系统提供的各种网络命令的功能。 2. 熟悉Windows操作系统提供的各种网络命令的使用方法和输出格式。 3、掌握常用的网络命令,能用ping 、ipconfig等命令工具来进行网络测试、使用tracert路由跟踪命令、使用route、netstat、arp等命令查看网络状态。 二、实验内容 1、常用网络测试命令PING的使用 2、网络配置查看命令IPCONFIG的使用 3、网络连接统计命令NETSTAT的使用 4、网络路由表操作命令ROUTE的使用 5、地址解析命令ARP的使用 6、路由跟踪tracert命令的使用 三、实验步骤 (一)常用的网络测试工具-PING.EXE 1、工作原理 Ping的主要作用是验证与远程计算机的连接。该命令只有在安装了TCP/IP 协议后才可以使用。向远程计算机通过ICMP协议发送特定的数据包,然后等待回应并接收返回的数据包,对每个接收的数据包均根据传输的消息进行验证。默认情况下,传输四个包含32 字节数据(由字母组成的一个循环大写字母序列)的回显数据包。 过程如下: (1)通过将ICMP 回显数据包发送到计算机,并侦听回显回复数据包来验证与一台或多台远程计算机的连接。 (2)每个发送的数据包最多等待一秒。 (3)打印已传输和接收的数据包数。 2、用法 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 参数一览表:

计算机网络课程设计实验报告

中南大学课程设计报告 课程:计算机网络课程设计 题目:基于Winpcap的网络流量统计分析 指导教师:张伟 目录 第一章总体设计 一、实体类设计 --------P3 二、功能类设计 --------P3 三、界面设计 --------P3 第二章详细设计 一、实体类实现 --------P4 二、功能类实现 --------P4 三、界面实现 --------P5 第三章源代码清单及说明 一、CaptureUtil.java --------P7 二、MyPcapPacketHandler.java --------P9 三、PacketMatch.java --------P9 四、Windows.java --------P13 第四章运行结果 --------P19 第五章心得体会 --------P21 第一章总体设计 一、实体类设计 TCP、UPD、ICMP、ARP、广播数据包五个包的数据结构设计 二、功能类设计 (1)网卡获取 (2)包的抓捕 (3)包的处理 三、界面设计 (1)布局 (2)按钮功能连接 第二章第二章详细设计 一、实体类实现 TCP、UPD、ICMP、ARP、广播数据包五个包的数据结构设计。 本程序采用Java编写,基于win10pcap。Win10pcap是winpcap在win10系统上的适用版本。Java对于winpcap使用jnetpcap进行支持。对于TCP、UPD、ICMP、ARP、广播数据包五种类型的包,在jnetpcap

的jar包中大部分已经封装好了相关的实体类型。对应如下: ARP 实体类: UPD 实体类: IP 实体类: TCP 实体类: UDP 实体类: 而对于其中的广播数据包,其判断我利用捕获到的IP包的目的地址进行判断,若其目的地址为,则认为其为广播数据包。 二、功能类实现 (1)网卡获取 电脑上的包的发送与接受都得通过网卡来进行,所以为了完成局域网数据包的捕获和统计,我首先要做的是获取到电脑上的网卡列表,然后选择一个网卡进行包的捕获。而相关代码在jnetpcap的官网的示例代码1中可以找到,从中可以学习到的是jnetpcap的各种使用方法。 在我电脑上可以捕获到三个网卡,一个是本机自身的物理网卡,另外两个是虚拟机模拟出的虚拟网卡。 (2)包的抓捕 Jnetpcap中包的抓捕也是有着固定的格式的,这在官网的示例代码中也是可以找到的,只要设置好相关的参数,就可以进行抓捕 具体方法如下,利用Pcap对象的loop方法。就是实例化一个Pcap对象,然后调用其loop方法。第一个参数arg0 代表循环次数,第二个参数就是传入一个PcapPaketHandler或其子类的对象,这个对象类型是要由我们自己编写的对包处理的方法。 (3)包的处理 在这里对捕获的包的处理我是编写了一个PcapPacketHandler的子类,然后重写了nextPacket()方法。在这个方法里我把捕获到的包当作参数传递个具体的处理方法packetMatch.handlePacket(packet)。 packetMatch.handlePacket(packet)方法是由我自己编写的。handlePacket是packetMatch 的一个静态方法,可以直接调用。在这个方法里面,它会把捕获到的包的包头和T CP、UPD、ICMP、ARP、广播数据包五种类型的包的包头进行一一比较,以确认是否抓到了了相对应的包。 这儿还用到的就是jnetpcap的内部的一个方法,就是packet.hasHeader(arg0),通过在arg0传入已在jnetpcap里封装好的包的类型的实例,可以很好的判断该包是属于什么包类型的,是T CP、UPD、ICMP、ARP还是广播数据包。 然后内部对于各种包的信息的输出也有很好的支持,可以直接使用相应的toString方法,就可以输出各种相关信息。 (4)网络流量统计 对于各个捕获到的包,分别针对各种类型的包设计了一个Double变量用于统计其传送过来相应包头的大小,并在停止抓包后将统计的数据输出在最下方的TextArea里面。 三、界面实现 本程序在设计GUI时使用了Java的一个很好的插件WindowBuilder。 (1)布局 一开始使用Border Layout布局,安排好各个按钮位置,文本框位置。后来采用Absolute layout,并将窗口大小固定化。 在布局的最上方是一个JToolBar的实例对象,其中放置有选择网卡、开始抓包、停止抓包、清空记录等四个选项,中间是两个带滚动条的多行文本框,左边的用于显示捕获的包的列表,右边用于显示左边的我们选中的包的具体信息。最下方会在停止抓包按钮生效后输出总的抓包情况。

计算机网络原理实验报告

计 算 机 网 络 实 验 报 告 学校:中原工学院 学院:计算机学院 班级:网络092 学生:李东杰 学号:200900824217 日期:2010年12月25日

实验1 WIN32网络配置命令使用 一、实验内容: 网络测试工具—PING.EXE 网络配置查看程序—IPCONFIG.EXE 网络链接统计工具—NETSTA T.EXE 操纵网络路由表的工具—ROUTE.EXE 地址解析工具—APR.EXE 路由跟踪工具—TRACERT.EXE 二、教学目的、要求: 了解WIN32操作系统提供的各种网络功能的命令。熟悉WIN32操作系统提供的各种网络命令的使用方法和输出格式。 三、教学重点及难点 掌握命令输出项的含义 三、实验步骤 1、最常用的网络测试工具-PING.EXE 作用:Ping的主要作用是验证与远程计算机的连接。该命令只有在安装了TCP/IP 协议后才可以使用。 原理:向远程计算机通过ICMP协议发送特定的数据包,然后等待回应并接收返回的数据包,对每个接收的数据包均根据传输的消息进行验证。默认情况下,传输四个包含32 字节数据(由字母组成的一个循环大写字母序列)的回显数据包。过程如下: (1)(1)通过将ICMP 回显数据包发送到计算机并侦听回显回复数据包来验证与一台或多台远程计算机的连接。 (2)(2)每个发送的数据包最多等待一秒。 (3)(3)打印已传输和接收的数据包数。 用法: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

相关文档
最新文档