网络程序课程设计报告模版

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 users;

public FtpServerForm()

{

InitializeComponent();

// 初始化用户名和密码 users = new Dictionary(); users.Add("admin", "admin");

// 设置默认的主目录

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

相关文档
最新文档