课程设计
课程名称计算机网络课程设计
题目名称文件传输协议的简单设计与实现学生学院
专业班级___ _
学号
学生姓名______ _________
指导教师______ _____
2010 年 1 月 5 日
设计摘要
关键词:SOCKET编程,FTPclient/server程序
摘要:本课程设计包含了文件传输协议的简单设计与实现。
文件传送是各种计算机网络实现的基本功能,文件传送协议是一种最基本的应用层协议按照客户/服务器的模式进行工作,提供交互式的访问,是INTERNET使用最广泛的协议之一。文件传输协议的简单设计与实现建立在计算机网络实验环境TCP/IP 网络体系结构之上,使用socket 编程接口编写两个程序,分别为客户程序和服务器程序(),实现下述命令功能:get , put, pwd, dir, cd, ?, quit 等,利用了已有网络环境设计并实现简单应用层协议。
本设计包括了具体设计任务,基本思路及所涉及的相关理论,设计流程图,调试过程中出现的问题及相应解决办法,实验运行结果,核心程序,个人体会及建议等。
目录
1、文件传输协议的简单设计与实现------------------------------18
1. 1 具体设计任务----------------------------------------------18基本思路及所涉及的相关理论--------------------------------18
1.2.1基本思路-------------------------------------------------18
2.2.2 相关理论--------------------------------------------18
设计流程图------------------------------------------------19
实验运行情况----------------------------------------------19
核心程序--------------------------------------------------22
2.5.1 服务器(sever)程序---------------------------------22
2.5.2 客户(client)程序----------------------------------29
心得体会-----------------------------------------------------------------------------37
参考文献--------------------------------------------------------38
2、文件传输协议的简单设计与实现
2. 1 具体设计任务
计算机网络实验环境建立在TCP/IP 网络体系结构之上。各计算机除了安装TCP/IP 软件外,还安装了TCP/IP 开发系统。实验室各计算机具备Windows环境中套接字socket 的编程接口功能,可为用户提供全网范围的进程通信功能。本实验要求利用这些功能,设计和实现一个简单的文件传送协议。
用socket 编程接口编写两个程序,分别为客户程序和服务器程序(),该程序应能实现下述命令功能:
get:取远方的一个文件
put:传给远方一个文件
pwd:显示远主当前目录
dir:列出远方当前目录
cd :改变远方当前目录
?:显示你提供的命令
quit :退出返回
基本思路及所涉及的相关理论
2.2.1基本思路
设计程序使客户端连接的时候,服务器将会向客户端发回一条消息告知它的IP地址,然后关闭连接并继续接收端口的连接。建立各个命令功能对应的函数,发送请求,等待服务器端的服务。服务器端初始化WinSock,创建SOCKET,获取主机信息,并对客户端进行会话,发送回复讯息给客户端,响应完毕后关闭连接,释放WinSock。
2.2.2 相关理论
文件传送是各种计算机网络都实现的基本功能,文件传送协议是一种最基本的应用层协议按照客户/服务器的模式进行工作,提供交互式的访问,是INTERNET使用最广泛的协议之一。
计算机网络实验环境建立在TCP/IP 网络体系结构之上。各计算机除了安装TCP/IP 软件外,还安装了TCP/IP 开发系统。实验室各计算机具备Windows 环境中套接字socket 的编程接口功能,可为用户提供全网范围的进程通信功能。本设计利用这些功能,设计和实现一个简单的文件传送协议。用socket 编程接口编写两个程序,分别为客户程序和服务器程序()。
设计流程图
实验运行情况
服务器端运行,默认自动启动监听,情况如下图:
服务如果关闭监听,效果如下图:
客服端运行,如下图:
输入服务器端的IP和端口号进行连接,效果如图:
下面设置文件保存位置,如图:
下面演示上传一个视频文件,然后再下载下来,其中上传过程的进度信息:
上传完成后的效果图:
下载文件的进度提示信息:
下载完成后,指定目录下就有了该文件了:
核心程序
2.5.1 服务器(server)程序如下
using System;
using ;
using ;
using ;
using ;
using ;
using TCP文件传输_服务器
{
class WorkThread
{
byte[] buffer;
int bufferSize= 4096;
Thread mythread;
Socket handler;
public WorkThread(Socket workSocket)
{
handler = workSocket;
buffer = new byte[bufferSize];
mythread = new Thread(BeginCommunication);
}
public void Start()
{
();
}
public void Abort()
{
();
}
private void BeginCommunication()
{
while (true)GetString(buffer, 0, reCount);
if (0, 4) == "name")Substring(5, - 5);
SendFile(fileName, handler);
}
else if (0, 4) == "boot");
}
}
oString();
= strIPAddr;
hostIPAddress = (strIPAddr);
Server = new IPEndPoint(hostIPAddress,
);