实验七-网络程序设计综合实验汇总
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
网络程序设计
实验报告
实验名称:winsock 编程接口实验实验类型:设计型
指导教师:贾浩
专业班级:信安1204
姓名:马灿
学号:20123252
电子邮件:
实验地点:东6 E307
实验日期:
实验成绩:__________________________
实验七网络程序设计综合实验
摘要:本课程设计包含了文件传输协议的简单设计与实现。文件传送协议是一种最基本的应用层协议按照客户/服务器的模式进行工作,提供交互式的访问,是INTERNET使用最广泛的协议之一。文件传输协议的简单设计与实现建立在计算机网络实验环境TCP/IP网络体系结构之上,使用socket编程接口编写两个程序,分别为客户程序(client.c)和服务器程序(server.c),利用了已有网络环境设计并实现简单应用层协议。本设计包括了具体设计任务,基本思路及所涉及的相关理论,设计流程图,调试过程中出现的问题及相应解决办法,实验运行结果,核心程序,个人体会及建议等。
关键词:SOCKET编程,FTPclient/server程序
一.问题描述及设计思路
1.1 问题描述
服务器端:
1.指定一个目录作为FTP目录(之后所有的文件操作均在此目录下进行)
2.接收客户端的命令请求并提供相应的服务。
客户端:完成与FTP用户的人机界面,以命令的方式向服务器请求服务,主要的命令有:1.CONNECTIP地址端口号
2.指定FTP服务器的IP地址和端口号,连接到服务器。响应:连接成功/失败。
3.LOGIN用户名
4.用户登录(假设在服务器端有用户管理功能)
5.响应:若用户不存在,提示“无此用户”;若用户存在,提示“密码:”;用户输入密码后,若正确提示“登录成功”;若不成功,提示“密码错误”。6.3.DIR
7.显示FTP服务器的FTP目录的文件列表(假设无子目录)
8.响应:目录列表(只要文件名即可)。
9.4.GET文件名
10.将FTP目录下的文件下载到本地,支持断点续传
11.响应:传送成功/失败/无此文件。
12.5.PUT文件名
13.将本地文件上传到FTP目录,支持断点续传
14.响应:传送成功/失败/无此文件。
15.6.HELP(客户端和服务器端均有该功能)
16.实验环境本次实验采用MFC工程工程采用MFC对话框界面工程名称为MyServer和FTPSOCKET。
17.详细设计过程
1.2 设计思路
1. FTP协议基础
FTP 是TCP/IP 协议组中的协议之一,该协议是Internet文件传送的基础,它由一系列规格说明文档组成。目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上或从自己计算机中拷贝至远程计算机上。在TCP/IP协议中FTP标准命令TCP端口号为21,Port
方式数据端口为20。
2. 网络文件传输原理
在通信的时候主要可以分为两个部分。一个部分是用于传送控制信息,例如发送文件的请求文件的名称、大小等。采用MFC所提供的CSocket类的串行化技术来实现,而另一个部分就是文件的传输部分。对于文件的传输,由于数据量相对来说比较大,使用两个线程。一个用于发送,一个用于接收。这两个部分在具体实现的时候分别建立有自己的套接字。FTP编程基础
3. FTP传输原理
FTP协议使用两条单独的TCP连接一条专用于发送FTP命令另一条则专用于传递数据。初始建立连接时服务器在21号端口上接收来自客户端的命令连接。当需要传送数据时文件列表、文件数据等客户端向服务器发出Port 命令并进入监听状态等待来自服务器的数据连接请求。
总体功能模块图
服务器端
功能说明:
线程控制:线程类别:选择线程类别,单线程或多线程传送文件线程数设置:若选择多线程,可自行设置线程数目,若选择单线程,则默认线程数目为1
②启动服务器:设置好线程控制后,点击“启动”按钮启动服务器端
③选取文件:选择要发送给客户端的文件
④发送文件:获取要发送文件属性:获取到要传送给客户端的文件的基本属性,包括:文件名,大小(B),已发送多少(B),文件路径发送进度显示:显示给客户端发送文件的进度
⑤ChatWithServer:启动采用UDP协议的简单聊天系统,用来与客户端进行通讯(客户端和服务器端都得启动,否则无法收到)
⑥Help:显示服务器端使用说明
客户端
功能说明:
握手服务器:输入服务器端IP地址,点击“握手服务器”按钮,获取服务器端启动的线程数
②连接服务器:与服务器进行连接
③接收文件:获取接收文件属性:获取到要接收的服务器端传来的文件的基本属性,包括:文件名,大小(B),已接收多少(B),文件存储路径接收进度显示:显示已接收文件的进度
④ChatWithServer:启动采用UDP协议的简单聊天系统,用来与客户端进行通讯(客户端和服务器端都得启动,否则无法收到)
⑤获取IP地址:获取本机的主机名及IP地址
⑥HELP:显示客户端使用说明
2、系统结构
3、主要功能流程图(1)文件传输流程图
2、用例描述
(1)文件传送用例描述
二.功能实现及主要代码
服务器端启动服务,端口号为8888
客户端连接服务,服务器的ip地址为111.9.118.115