




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、网络程序设计实验报告实验名称:winsock编程接口实验实验类型:设计型指导教师:贾浩专业班级:信安1204姓 名:马灿学 号:20123252电子邮件:实验地点:东 6 E307实验日期:实验成绩:实验七 网络程序设计综合实验摘要:本课程设计包含了文件传输协议的简单设计与实现。文件传送协议是一实验运行种最基本的应用层协议按照客户 /服务器的模式进行工作,提供交互式的访问, 是INTERNETS用最广泛的协议之一。文件传输协议的简单设计与实现建立在计 算机网络实验环境 TCP/IP 网络体系结构之上, 使用 socket 编程接口编写两个程 序,分别为客户程序( client.c )和服务器程
2、序( server.c ), 利用了已有网络 环境设计并实现简单应用层协议。 本设计包括了具体设计任务, 基本思路及所涉 及的相关理论, 设计流程图, 调试过程中出现的问题及相应解决办法, 结果,核心程序,个人体会及建议等。关键词:SOCKE编程,FTP die nt/server程序 一问题描述及设计思路1.1 问题描述 服务器端:主要的1. 指定一个目录作为FTP目录(之后所有的文件操作均在此目录下进行 2接收客户端的命令请求并提供相应的服务。客户端:完成与FTP用户的人机界面,以命令的方式向服务器请求服务,命令有:1 . CONNECT地址端口号2. 指定FTP服务器的IP地址和端口号,
3、连接到服务器。响应:连接成功/失 败。3. LOGIN用户名4 用户登录 (假设在服务器端有用户管理功能 )5响应: 若用户不存在, 提示“无此用户”; 若用户存在, 提示“密码: ”; 用 户输入密码后,若正确提示“登录成功”;若不成功,提示“密码错误”。3DIR显示FTP服务器的FTP目录的文件列表(假设无子目录) 响应:目录列表 (只要文件名即可 )。4. GET文件名将FTP目录下的文件下载到本地,支持断点续传 响应:传送成功 /失败/无此文件。5 . PUT文件名将本地文件上传到FTP目录,支持断点续传响应:传送成功 /失败/无此文件。6 . HELP客户端和服务器端均有该功能)67
4、8910111213141516.实验环境 本次实验采用MFCT程 工程采用MFC对话框界面 工程名称为 MyServer 和 FTPSOCKE。 T17 详细设计过程1.2 设计思路1. FTP 协议基础FTP是TCP/IP协议组中的协议之一,该协议是In ternet文件传送的基础,它 由一系列规格说明文档组成。目标是提高文件的共享性,提供非直接使用远程计 算机,使存储介质对用户透明和可靠高效地传送数据。简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上或从自己计算 机中拷贝至远程计算机上。在TCP/IP协议中FTP标准命令TCP端口号为21, Port 方
5、式数据端口为20。2. 网络文件传输原理在通信的时候主要可以分为两个部分。一个部分是用于传送控制信息,例如发送 文件的请求文件的名称、大小等。采用MFC所提供的CSocket类的串行化技术来 实现,而另一个部分就是文件的传输部分。 对于文件的传输,由于数据量相对来 说比较大,使用两个线程。一个用于发送,一个用于接收。这两个部分在具体实 现的时候分别建立有自己的套接字。FTP编程基础3. FTP传输原理FTP协议使用两条单独的TCP连接一条专用于发送FTP命令另一条则专用于 传递数据。初始建立连接时服务器在21号端口上接收来自客户端的命令连接。当需要传送数据时 文件列表、文件数据等客户端向服务器
6、发出Port命令并进入监听状态等待来自服务器的数据连接请求。总体功能模块图服务器端脈势器端-1 选取文件“厂*友送文ChiTwithhelp获取要发送文 件S性+sever*线程类 别”功能说明:线程控制:线程类别:选择线程类别,单线程或多线程传送文件 线程数设置: 若选择多线程,可自行设置线程数目, 若选择单线程,则默认线程数目为1 启动服务器:设置好线程控制后,点击“启动”按钮启动服务器端 选取文件:选择要发送给客户端的文件 发送文件:获取要发送文件属性:获取到要传送给客户端的文件的基本属性, 包括:文件名,大小(B),已发送多少(B),文件路径发送进度显示:显示给客户 端发送文件的进度
7、ChatWithServer :启动采用UDP协议的简单聊天系统,用来与客户端进行通 讯(客户端和服务器端都得启动,否则无法收到) He Ip :显示服务器端使用说明 客户端茯取接收文件属性接收逬度S示功能说明:握手服务器:输入服务器端IP地址,点击“握手服务器”按钮,获取服务器端 启动的线程数 连接服务器:与服务器进行连接 接收文件:获取接收文件属性:获取到要接收的服务器端传来的文件的基本 属性,包括:文件名,大小(B),已接收多少(B),文件存储路径接收进度显示: 显示已接收文件的进度 ChatWithServer :启动采用UDP协议的简单聊天系统,用来与客户端进行通 讯(客户端和服务器
8、端都得启动,否则无法收到) 获取IP地址:获取本机的主机名及IP地址 HELP:显示客户端使用说明2、系统结构3、主要功能流程图(1)文件传输流程图2、用例描述(1)文件传送用例描述用例名称,眼务S端文件传竊參与者,眼务器端管理员關服务器端管理员设菱线程类别和启动的线程数目,服务器,选取文件逬行发送前5件:服务器端管理员已经运行眼务S端程序基本事R%1. 服务器集管理员通过鼠标点击线程类瞬线程数目下拉列表框逬行设置,然后点击"启动"按钮,脛务器.2. 点击"选取文件"按钮,选择要传送给客户的文件,在文件属性框中显示出相应文件的信想, 点击虞发送文件”搜钮
9、,进行文件传输M点击“退出”按钮,退出服务器厳4.点击"帮助"扌妥钮可以S看便用说明S用例终止其他事件流A1:在扌寒'发送張钮之前,服务器端管理员随时可因$ "退出”按钮,终止与客户的琏接,即终止与客 户端之间的文件传送.1. 提示错误信息,文件传送卿用例名称:客户靖文件传输銅客户输入服务器端IP地址,琏接眼务S,进行文件接收前9件: 容户运行客户端应用程序1.脛务器端选择账户,点击开始服勞,则进入监听状态,等待客户端谖求.1客户端输入用户名及密码,若与服务器端匹配,则在文本框中显示连接服务器,登陆用户名.连 播失败则显示"连接失敷”.3-在di
10、em列表框中点击更上传的文件,弹出对话框,寻间是否要上传,点击是,则上传文档至服 务器端.并将文档列表显示在列表框中.4.点击终止服务,则退城序.其 itfesmsAb在按删攵浚钮之前,客户随时可以按"停止接收”按钮,终止与服勞器端之间的文件传送. 在文件开始播收后,点击“停止收”搜钮,也终止与服务器之间的文件传送.畀常事林1.提示错误信息,文件传送册二.功能实现及主要代码服务器端启动服务,端口号为8888kb. -S FTPServfr 期:庖动服劳H交件存锁目录:c:剧靳| 退出开启端口 |eb&s客户端连接服务,服务器的ip地址为15FTPCiie
11、ntSS月民务器IF: I 111 . 9. 11S . 115 端号:药西用户名:angel密码:#*#*-双击列表旌可!FTP 匚 lie nt文件容下载目录:刷新 |下载文件列表上传文件用户噓a I退岀 I连接成功 CEaBSf脂务器IF:111.9. 118 . 115端号:s38S刷新 |下载目录:退岀 |e7添加用户g fTPServer开启端口 |3eS8启动冃吕务Ic:退出II交件管陛文件老 丨大小仍)I用户验证用户1C増设用户- 用户名:large |权限添加用户密码:权限I确定I0502取消|刪陳用户上传文件2.txt,上传到C盘ES査找范圉co:”血拟机1 新巻H
12、69;)亠T 4也古罔樁改曰期亠2013/10/9 23;1:丨一 22014/5/5 23:06,32014/5/18 10:4;* 1PTI文件容M:|21打开a 1文件类型CT):r二1取消III下载目录:|e:刷新服务器,c盘中有2.txt,上传成功:H ttH 机鑫本加通(COLj Tfe (Dt)曲B ifi'i上信文件退岀 II7 TEMP沁価哼22Vi6文1些.TSLOG2013/4/4 11J31.:WindowsJ014/5/15 15:25一 JLBEpp201/1/L/ 1 生曲文哄X闺闺齐2014/4/3 13:132014/5/ Le:55:E哄.用户201
13、2/122 n:D7文哄刖n逊 id2014/4/7 ?£: 50 JPG 列半一 2fc.JPG1 KeJlfi7 KB添加文件鑿 FTPServer启动服夯|c:退出|文件誉遲文件奢L戈小怕j J文件路径.I按救的文一 携救的交.逮文苹.*tHt79039C:User_ _ C: U5cr, u:l新建.G 2, tstt添to文件angelJ 枳限营理员下载文件服势器IP:用户窑:刪除文件刪陆用户111 . 9.118 .115 端口号:丽丽连接服务器angel*+*+*用户验证I-双击列表框mFTPCiient文件宅巴記文件下载到E:下载目录:挽救的文档挽救的文档丈法 新建文
14、本文档口)2. txt下载文件列表上传文件刷新I退岀I文件下载到E盘:巴 i+m£L 本JGiK蟲(Ci)匚i 下'fe (D:l進(Ei)个人tF;代H (G:) HP V220W Cl;】止 71.1.17龙Program Ries2014/2/25 21iOE'l计算扒接作敎2014/1/10 12:45哀件云'.I计算扒网茫2013/11/25 13:24文1换2013/11/30 15:55立收Li荻件测试2014/3/15 梟皿Li戲字圏是叵片折文4:'.1厲第程宇设计2014/4/26 20:47却核'.1新蚩对恢2013/3/1
15、1 17:20q虚拟机2013/10/9 15:50通过这次实验,实验总结我很好的了解到了文件传输的流程,了解到文件传输协议使 得主机间可以共享文件。FTP使用TCP生成一个虚拟连接用于控制信息,然后 再生成一个单独的TCP连接用于数据传输。控制连接使用类似TELNET协议在主 机间交换命令和消息。文件传输协议是 TCP/IP网络上两台计算机传送文件的协 议,FTP是在TCP/IP网络和INTERNETt最早使用的协议之一,它属于网络协议 组的应用层。FTP客户机可以给服务器发出命令来下载文件,上传文件,创建或 改变服务器上的目录。对套接字的使用和通信模型通信机制有了进一步了解,也 熟练的掌握
16、了如何选择通信模型。对各个函数的使用也有了进一步了解。四附录代码:服务器初始化套接字BOOL CFT PServerDlg:l nitSocket()if(m_sock = INVALID_SOCKET)m_sock = socket(AF_INET,SOCK_STREAM ,0); if(INVALID_SOCKET = m_sock)MessageBox("创建套接字失败!"); return FALSE;CStri ng sPort;GetDlgltem(IDC_EDIT_ PORT)->GetWi ndowText(s Port); MessageBox(&q
17、uot;开启的端口 :"+sPort);int nPort = atoi(s Port);if(nPort < 1 | nPort > 65535)MessageBox(" 端口号错误! "); return FALSE;SOCKADDR_IN srvAddr; srvAddr.sin_addr.S_un.S_addr = htonl(INADDR_ANY); srvAddr.sin_family = AF_INET;srvAddr.sin_port = htons(nPort); if(bind(m_sock,(SOCKADDR*)&srvA
18、ddr,sizeof(SOCKADDR)= SOCKET_ERROR) closesocket(m_sock);MessageBox(" 绑定套接字失败 !");return FALSE;return TRUE;FileInfo file10;int count = 0;CString str10;使用异步选择模型HCURSOR CFTPServerDlg:OnQueryDragIcon() return (HCURSOR) m_hIcon;/void CFTPServerDlg:OnStart()/ 进入监听状态InitSocket();启动服务/ 设置 socket 为
19、窗口通知消息类型/ 进入监听模式int m_nClient = listen(m_sock,5); if(m_nClient != 0)MessageBox("Listen error!"); closesocket(m_sock); return ;/MessageBox("Listen success!");II注册网络注册网络异步事件 ,m_hWnd为应用程序的主对话框或主窗口的句柄 if(:WSAAsyncSelect(m_sock, m_hWnd, WM_SOCKET,FD_ACCEPT|FD_CLOSE|FD_READ|FD_WRITE)=S
20、OCKET_ERROR)MessageBox("WSAAsyncSelect fail!");elseMessageBox("WSAAsyncSelect success!"); 客户端 连接服务void CFTPClientDlg:OnConnect()/ 先获得 IP 控件的值BYTE nField0,nField1,nField2,nField3; m_IP.GetAddress(nField0, nField1,nField2, nField3); char buff20;wsprintf(buff,"%d.%d.%d.%d"
21、,nField0,nField1,nField2,nField3); MessageBox(buff);/ 获取端口号的值 int port = atoi(m_port);m_sock = socket(AF_INET,SOCK_STREAM ,0); if(INVALID_SOCKET = m_sock)/MessageBox(" 创建套接字失败 !"); return ;elseMessageBox(" 创建套接字成功 !");IIIISOCKADDR_IN srvAddr;srvAddr.sin_addr.S_un.S_addr = inet_ad
22、dr(buff); srvAddr.sin_family = AF_INET;srvAddr.sin_port = htons(port);II srvAddr.sin_port = htons(8888); if(:connect(m_sock, (sockaddr*)&srvAddr, sizeof(srvAddr) = -1) MessageBox(" 连接失败 "); return ; elseMessageBox(" 连接服务器成功 ");UpdateList(); 上传文件 /上传文件到服务器 void CFTPClientDlg:O
23、nPutFile() /*/if(!UserVerfify()MessageBox(" 该用户不存在 "); return ;*/CFileDialog fileDlg(TRUE,NULL,NULL); if(fileDlg.DoModal() = IDCANCEL) return;CString fileName,filePath;CString fileType;int fileLength;filePath = fileDlg.GetPathName(); CFile newFile;newFile.Open(filePath, CFile:modeRead|CFil
24、e:modeReadWrite ); / 获取文件的名字,大小,路径 fileName = newFile.GetFileName();fileName += "#"fileLength = newFile.GetLength(); char *pbuf = new char1024; memset(pbuf,0,1024);char *pbuf = new charMAXSIZE; memset(pbuf,0,MAXSIZE); char pbuf1024 = 0;/ UINT nBytesRead = newFile.Read( pbuf, fileLength); U
25、INT nBytesRead = newFile.Read( pbuf, MAXSIZE);/ /pbuf/pbuf/ 用数字 1 表示上传文件名的识别码fileName = "1" + fileName;CString pbuf1; pbuf1.Format(pbuf);fileName = "1" + fileName + pbuf;char* fName1 = (LPSTR)(LPCTSTR)fileName;strcat(fName1,pbuf);/ MessageBox(fileName);/ MessageBox(fName1);newFile.Close();if(nBytesRead >0)文件名 文件路径 文件类型为了区别文件名和传输的内容存储文件内容存储文件内容/此语句有问题/ if(send(m_sock,fName1,strlen(fName1)+1,0)=SOCKET_ERROR ) if(send(m_sock,fileName,strlen(fileName)+1,0)=SOCKET_ERROR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版重庆市农村小额贷款信用担保服务管理协议
- 二零二五年度跨境电商配套国内公路运输专项合同
- 2025年度装修工程预付定金合同纠纷起诉状范本
- 2025版文化设施建设项目分包保证金合同协议书
- 二零二五年度高端住宅项目销售代理专项合同
- 2025版驾校教练员新能源汽车驾驶教学聘用协议
- 2025年高压电工考试题库:高压绝缘技术应用安全防护试题集
- 2025版环境保护与生态修复服务战略合作协议
- 2025年统计学专业期末考试题库:学术论文写作论文写作规范与注意事项试题
- 2025版网络安全监控外包采购协议
- 【真题】七年级数学下学期期末试卷(含解析)湖南省长沙师大附中集团2024-2025学年
- 农机运用与管理学
- 2025年四川高考物理试卷真题答案详解及备考指导(精校打印)
- 陕西渭南高新区招聘城镇社区专职工作人员考试真题2024
- 河北省沧州市2024-2025学年高一下学期7月期末教学质量监测英语试卷(含答案)
- 空调维修保养售后服务承诺书范文
- 运动训练常识题库及答案
- 医保飞检培训
- 医疗废物与污水处理培训
- 麻醉中级晋升汇报
- 卫生服务站消杀管理制度
评论
0/150
提交评论