网络程序课程设计报告模版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《高级网络程序设计》
课程设计报告
题目FTP文件传输协议学号11102410
姓名倪福柱
计算机网络工程教研室
2015年01月12 日
目录
一、实验目的………………………………………………………
二、实验内容和要求………………………………………………..
1、实验内容……………………………………………………..
2、具体要求……………………………………………………..
三、需要完成的的内容…………………………………………………………
1.FTP系统模型…………………………………………………………….
2. 系统功能设计……………………………………………………………
2.1总体设计…………………………………………………………...
2.2系统实现……………………………………………………………
四、具体实现步骤………………………………………………………………..
1. FTPClient用户界面的实现……………………………………………….
2. FTPClient控制连接的实现……………………………………………….
3. FTPClient数据传输连接的实现………………………………………….
3.1下载文件操作………………………………………………………..
3.1下载文件操作………………………………………………………..
3.3显示服务器的路径…………………………………………………..
3.4进入服务器更改路径………………………………………………..
4. FTPServer控制连接的实现………………………………………………
5. FTPServer数据传输线程的实现…………………………………………
5.1读取本地文件下载给客户端…………………………………………
5.2接收客户端的上传的文件……………………………………………
5.3获取服务器本地系统路径……………………………………………
五、实验结果…………………………………………………………………….
六、实验心得…………………………………………………………………….
天津科技大学计算机学院《高级网络程序设计》课程设计
一、课程设计内容
1、实验内容
我们的计算机网络实验环境建立在TCP/IP 网络体系结构之上。各计算机除了安装TCP/IP 软件外,还安装了TCP/IP 开发系统。实验室各计算机具备Windows环境中套接字socket 的编程接口功能,可为用户提供全网范围的进程通信功能。本实验要求学生利用这些功能,设计和实现一个简单的文件传送协议。
二、设计目的
文件传送是各种计算机网络都实现的基本功能,文件传送协议是一种最基本的应用层协议按照客户/服务器的模式进行工作,提供交互式的访问,是INTERNET使用最广泛的协议之一。本实验的目的是,学会利用已有网络环境设计并实现简单应用层协议,掌握TCP/IP 网络应用程序基本的设计方法和实现技巧。
三、具体要求
用socket 编程接口编写两个程序,分别为客户程序(client.c)和服务器程序(server.c),该程序应能实现下述命令功能:
get:取远方的一个文件
put:传给远方一个文件
pwd:显示远主当前目录
pwd:显示远主当前目录
cd :改变远方当前目录
?:显示你提供的命令
quit :退出返回
这此命令的具体工作方式(指给出结果的形式)可以参照FTP 的相应命令,有余力的同学可以多实现几个命令。最后,写出实验报告。
1.FTPSERVER服务器界面的实现
自动获取服务器代码:
{
TcpListener myTcpListener = null;
private Thread listenThread;
// 保存用户名和密码
Dictionary
public FtpServerForm()
{
InitializeComponent();
// 初始化用户名和密码 users = new Dictionary
// 设置默认的主目录
tbxFtpRoot.Text = "D:/MyFtpServerRoot/";
IPAddress[] ips = Dns.GetHostAddresses("");
tbxFtpServerIp.Text = ips[1].ToString();
tbxFtpServerPort.Text = "21";
lstboxStatus.Enabled = false;
}
服务器启动代码:
// 启动服务器
private void btnFtpServerStartStop_Click(object sender, EventArgs e)
{
if (myTcpListener == null)
{
listenThread = new Thread(ListenClientConnect);
listenThread.IsBackground = true;
listenThread.Start();
lstboxStatus.Enabled = true;
lstboxStatus.Items.Clear();
lstboxStatus.Items.Add("已经启动Ftp服务...");
btnFtpServerStartStop.Text = "停止";
}
else
{
myTcpListener.Stop();
myTcpListener = null;
listenThread.Abort();
lstboxStatus.Items.Add("Ftp服务已停止!");
lstboxStatus.TopIndex = lstboxStatus.Items.Count - 1;
btnFtpServerStartStop.Text = "启动";
}
}
监听客户端代码:
private void ListenClientConnect()
{
myTcpListener = new TcpListener(IPAddress.Parse(tbxFtpServerIp.Text), int.Parse(tbxFtpServerPort.Text));
// 监听端口,处理客户端连接
myTcpListener.Start();
AddInfo("启动FTP服务成功!");
AddInfo("Ftp服务器运行中...[点击”停止“按钮停止FTP服务]");
while (true)
{
try
{
// 接收连接请求
TcpClient tcpClient = myTcpListener.AcceptTcpClient();
AddInfo(string.Format("客户端({0})与本机({1})建立Ftp连接"", tcpClient.Client.RemoteEndPoint, myTcpListener.LocalEndpoint));
User user = new User();
mandSession = new UserSeesion(tcpClient);
user.workDir = tbxFtpRoot.Text;
Thread t = new Thread(UserProcessing);
t.IsBackground = true;
t.Start(user);
}
catch