计算机网络-文件传输及IP协议——沐雨先生

实验内容

  1. 编写请求文件的客户Java应用程序
  2. 编写响应文件请求的服务器Java应用程序
  3. 利用Wireshark查看和分析IP包

基本要求

  1. 使用Java语言建立请求文件的客户应用程序
  2. 使用Java语言建立响应文件请求的服务器应用程序
  3. 了解IP协议的工作过程
  4. 了解IP包首部各字段及含义

对Java应用程序的要求

用Java语言编写两个建立在TCP上的应用程序。

  • 一个文件服务程序TcpFileServer.java
  • 一个文件客户程序TcpFileClient.java

server运行后等待来自客户的文件请求。client向server发送请求的文件名,server收到文件名后,在当前工作文件夹查找此文件,如果文件不存在,server忽略这个请求,断开TCP连接;如果文件存在,server向client发送文件的全部内容。client接收文件,输出接收文件的总字节数,并将文件存放至本地的当前工作文件夹,client将接收文件命名为backup<文件名>.<文件扩展名>。例如,如果client请求的文件名是words.txt,则client接收到server的文件后,将文件命名为backupwords.txt并存放到当前工作文件夹。client请求的文件可以是任意文件类型,文件字节数无限制。server与client之间工作过程如图1所示:

实验步骤

第1部分实现文件服务和客户

首先进入Dos命令提示符,键入命令

netstat -ano

查看已被占用的TCP端口列表。实验程序中TCP服务器使用的端口号不能出现在已占用端口列表中,确保TCP服务器使用的端口未被使用。

1.打开NetBeans开发环境。在前面的实验中,我们曾在"D:\"盘下建立了一个Java Application项目,项目名称是javanetwork,项目所在文件夹是d:\javanetwork。本实验需要在此项目下建立一个名为demo.filetransfer的包,在此包下建立Java应用程序。

  1. 根据上述对Java程序的要求编写TcpFileServer.java。Socket编程可参考实验2 TCP socket编程-实现客户和服务器,文件输入输出可参考实验4文件读写。

  2. 根据对上述Java程序的要求编写TcpFileClient.java。Socket编程可参考实验2,文件输入输出可参考实验4。

下面是程序运行示例,你的程序运行结果应与下列结果类似。

TcpFileServer运行后的输出窗口如下:

TcpFileClient运行。TcpFileClient向TcpFileServer请求文件index.html,将接收到的文件存入当前工作文件夹,文件名重新命名为backupindex.html,输出窗口如下:

此时TcpFileServer的输出窗口应与下图类似:

第2部分抓包

A,B两台电脑一组。

1.打开Wireshark,选择接口(网卡)为以太网(或WLAN)。点击"捕获"->"选项",不勾选"在所有接口上使用混杂模式",点击"开始"按钮开始抓包;

2.A运行TcpFileServer;

3.B运行TcpFileClient;

4.程序运行结束后,停止Wireshark抓包。

相关推荐
xiaoye-duck5 小时前
《C++ 项目:手写大模型接入 SDK》Ollama接口设计(上):初始化、全量响应实现和测试
开发语言·网络·c++·语言模型
无足鸟ICT7 小时前
【RHCA+】iptraf-ng(网络监控分析)
linux·网络
坤坤子吖9 小时前
Linux网络编程:TCP服务器的多进程与多线程实现
linux·服务器·开发语言·网络·c++·笔记·学习
xiaoye-duck11 小时前
《C++ 项目:手写大模型接入 SDK》LLMManager架构设计与实现
开发语言·网络·c++·语言模型
andxe12 小时前
工业级 PoE 交换机选型指南:破解边缘部署四大核心难题
运维·网络·安全·光通信·交换机
say_fall14 小时前
【Linux网络编程】计算机网络基础:局域网与广域网、OSI七层模型与TCP/IP五层模型、封装解包与MAC/IP地址、端口号与socket编程接口
linux·网络·tcp/ip·计算机网络·信息与通信
Joy T14 小时前
Gzip 压缩原理与实践:HTTP 响应压缩、性能收益与工程配置
网络·网络协议·http
叼烟扛炮14 小时前
Linux 学习笔记(五十四):内网穿透实战——用 frp 让外网访问你的私人电脑
linux·服务器·网络·笔记·学习
流浪00114 小时前
计算机网络篇21:网络层——网段划分与子网掩码,从分类地址到 CIDR 与可用主机数
计算机网络·子网划分·nat·子网掩码·cidr·网络层协议
咔_15 小时前
有IPv6地址,为什么外面还是连不进来?让同一台服务分别卡在四个位置
linux·计算机网络