计算机网络实验3.docx

上传人:b****3 文档编号:3521379 上传时间:2022-11-23 格式:DOCX 页数:18 大小:338.03KB
下载 相关 举报
计算机网络实验3.docx_第1页
第1页 / 共18页
计算机网络实验3.docx_第2页
第2页 / 共18页
计算机网络实验3.docx_第3页
第3页 / 共18页
计算机网络实验3.docx_第4页
第4页 / 共18页
计算机网络实验3.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

计算机网络实验3.docx

《计算机网络实验3.docx》由会员分享,可在线阅读,更多相关《计算机网络实验3.docx(18页珍藏版)》请在冰豆网上搜索。

计算机网络实验3.docx

计算机网络实验3

计算机网络课程实验三

实验目的:

让学生通过实验,对网络原理有更深刻和更直观的认识;掌握网络基本技术,例如:

组网、截获/分析数据包、网络编程等;为以后更深入的学习和利用计算机网络打下一个好的基础;

实验环境:

与因特网连接的计算机网络系统;主机操作系统为Windows;Ethereal、IE、Java等软件。

实验内容:

一、查看课程配套的3个JAVAApplet演示

演示1:

GBN(回退N步)协议(显然同时最多只能发送5个Packet)

(1)KillPacket0

KillPacket0

(2)KillAcknoledgementofPacket0

演示2:

SR(选择重传)

(1)KillPacket0

KillPacket0

(2)没有KillPacket

演示3:

TCP流量控制

文件大小4Kb,缓存大小2Kb

WhenHostAreceivesanacknowledgmentwithWIN=0

HostAsendsapacketwithonebyteofdata

二、利用Ethereal研究TCP传输过程

操作步骤:

1利用学校BBS的“自定义头像”上传功能,完成本地主机到远程服务器的TCP传输。

步骤:

登陆,选择“个人工具箱”中的“个人文件上传”,在新窗口中通过“浏览”按钮选择附件中的“face.gif”。

2启动Ethereal,开始一个新的分组俘获。

3回到“个人文件上传”窗口,点击“上传”,上传成功后,在页面的下方将出现face.gif图象。

4停止Ethereal分组俘获。

5在筛选规则中输入“tcp”,将看到主机和服务器之间传输的一系列的tcp和http报文。

得到的分组截图如下:

由此可知:

客户端主机的IP地址202.38.64.3

服务器的IP地址210.45.73.76

TCP源端口号58207

序列号15118

三、Socket编程

1构造一个简单的Web服务器

运行结果截图如下:

这表明了这段代码只能响应单个请求。

2在上面程序的基础上添加部分代码,使WebServer.Java能够响应多个请求,并在主机端显示请求次数。

试写代码如下:

importjava.io.*;

import.*;

importjava.util.*;

classWebServer{

publicstaticvoidmain(Stringargs[])throwsException{

StringrequestMessageLine;

StringfileName="";

intcountnum=0;//计数器

while(true)//加上循环,允许响应多次请求

{

ServerSocketlistenSocket=newServerSocket(6789);

SocketconnectionSocket=listenSocket.accept();

BufferedReaderinFromClient=newBufferedReader(newInputStreamReader(connectionSocket.getInputStream()));

DataOutputStreamoutToClient=newDataOutputStream(connectionSocket.getOutputStream());

requestMessageLine=inFromClient.readLine();

StringTokenizertokenizedLine=newStringTokenizer(requestMessageLine);

if(tokenizedLine.nextToken().equals("GET")){

fileName=tokenizedLine.nextToken();

if(fileName.startsWith("/")==true)

fileName=fileName.substring

(1);

Filefile=newFile(fileName);

intnumOfBytes=(int)file.length();

FileInputStreaminFile=newFileInputStream(fileName);

byte[]fileInBytes=newbyte[numOfBytes];

inFile.read(fileInBytes);

outToClient.writeBytes("HTTP/1.0200DocumentFollows\r\n");

if(fileName.endsWith(".jpg"))

outToClient.writeBytes("Content-Type:

image/jpeg\r\n");

if(fileName.endsWith(".gif"))

outToClient.writeBytes("Content-Type:

image/gif\r\n");

outToClient.writeBytes("Content-Length:

"+numOfBytes+"\r\n");

outToClient.writeBytes("\r\n");

outToClient.write(fileInBytes,0,numOfBytes);

connectionSocket.close();

}

elseSystem.out.println("BadRequestMessage");

System.out.println("请求次数:

”+countnum++);//输出请求次数

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

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

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