课程设计
课程名称_计算机网络
题目名称_文件传输协议的简单设计与实现学生学院_自动化学院
专业班级_13级物联网工程1班
学号_**********
学生姓名梁建斌
指导教师刘洪涛
2015年12月25日
摘要
文件传送是各种计算机网络都实现的基本功能,文件传送协议是一种最基本的应用层协议按照客户/服务器的模式进行工作,提供交互式的访问。本设计是基于Eclipse平台下使用Java实现的FTP文件传输。实现基本的文件传输操作。建立客户端和服务器、客户端基于TCP Socket进行数据传输,采用多线程进行数据传输,套接字来实现。在实现过程中采用类与对象的思想进行规划,体验了一个软件开发过程的具体实现步骤。
关键字:Java网络编程FTP文件传输文件上传下载文件操作
1
目录
一、实验目的 (3)
二、实验内容和要求 (3)
1、实验内容 (3)
2、具体要求 (3)
三、实验主要仪器设备和材料 (3)
四、基本原理 (3)
1.FTP系统模型 (3)
2. 系统功能设计 (4)
2.1总体设计 (4)
基本功能 (4)
2.2系统实现 (4)
五、实现结构流程图 (5)
六、整体实现的逻辑、数据结构 (5)
1.客户端的抽象数据类型 (5)
1.1FTPClient用户界面 (5)
1.2FTPClient控制连接线程 (7)
1.3FTPClient数据连接线程 (7)
2. 服务器的抽象数据类型 (8)
2.1 FTPServer的控制连接线程 (8)
2.2FTPServer的数据连接线程 (9)
七、具体的一些方法实现 (9)
1. FTPClient用户界面 (10)
2. FTPClient控制连接 (10)
3. FTPClient数据传输 (12)
4. FTPServer控制连接 (14)
5. FTPServer数据传输 (14)
八、测试结果
客户端结果 (16)
服务端结果 (16)
九、课程设计心得 (17)
十、参考文献 (18)
2
一、实验目的
文件传送是各种计算机网络都实现的基本功能,文件传送协议是一种最基本的应用层协议按照客户/服务器的模式进行工作,提供交互式的访问,是INTERNET使用最广泛的协议之一。
本实验的目的是,学会利用已有网络环境设计并实现简单应用层协议,掌握TCP/IP 网络应用程序基本的设计方法和实现技巧。
二、实验内容和要求
1、实验内容
我们的计算机网络实验环境建立在TCP/IP 网络体系结构之上。各计算机除了安装TCP/IP 软件外,还安装了TCP/IP 开发系统。实验室各计算机具备Windows环境中套接字socket 的编程接口功能,可为用户提供全网范围的进程通信功能。本实验要求学生利用这些功能,设计和实现一个简单的文件传送协议。
2、具体要求
用socket 编程接口编写两个程序,分别为客户程序(client.c)和服务器程序(server.c),该程序应能实现下述命令功能:
get:取远方的一个文件
put:传给远方一个文件
pwd:显示远主当前目录
dir:列出远方当前目录
cd :改变远方当前目录
:显示你提供的命令
quit :退出返回
这此命令的具体工作方式(指给出结果的形式)可以参照FTP 的相应命令,有余力的同学可以多实现几个命令。
最后,写出实验报告。
三、实验主要仪器设备和材料
联网计算机Eclipse JDK1.7帮助文档
四、基本原理
1.FTP系统模型
FTP是Internet上传文件的应用层协议。FTP规定数据包的格式、数据包头部结构和命令结构等等。FTP应用TCP传输而不用UDP。由FTP提供的文件传输将一个完整的文件从一个系统复杂然后通过TCP套接字发送传输个另一个系统中。一方为服务器。一方为客户端。FTP建立两个TCP连接,一个用于数据传输,一个用于传输命令。每一个FTP主机都有一个“协议解析器”模块。FTP以纯文本形式发送,其响应同样也是纯文本形式。在进行文件传输时,FTP的客户端和服务器之间要建立两个并行的TCP连接:“控制连接”和“数据连接”。控制连接在整个连接回话的期间一直保持打开状态。当FTP客户端通过控制连接发送请求,并告诉服务器自己的数据连接的动态端口号(randomPort),服务器通过控制
3
连接(2554)接收到请求信息,然后,创建数据连接(randomPort)进程进行连接客户端的数据传输端口。由于FTP采用两个不同的端口,所以数据连接和控制连接不会混乱。原理图看图1
图1
2.系统功能设计
2.1总体设计
基本功能:Client Server界面设计;输入要连的远程主机服务器IP,上传任意格式的文件;下载任意格式文件(能实现断点续传);查看服务器的根目录;列出服务器当前文件夹目录,更改服务器当前文件夹目录再列出,
支持多客户同时数据访问服务器(通过控制层给传输层分配动态端口实现)。
2.2系统实现
系统功能实现:FTPServer启动控制连接线程ServerControlPro创建一个ServerSocket端口号为2554进行实况监听访问。FTPClient开启,启动用户界面菜单,输入IP后,弹出选择提示菜单,用户输入想实现的操作operating(get,put,dir,pwd,-cd)和相应其它信息(文件路径),然后FTPClient开启控制连接的线程ClientControlPro访问FTPServer的2554端口进行控制连接,并启动了数据连接线程Client TransPro。服务器接收到FTPClient的请求和相关信息,进行启动数据连接ServerTransPro,监听客户端的数据连接。完成相应请求后。服务器关闭套接字,关闭数据连接线程。进入监听状态。
4