ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:252.30KB ,
资源ID:12775794      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12775794.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计网socket编程实验报告.docx)为本站会员(b****0)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计网socket编程实验报告.docx

1、计网socket编程实验报告深 圳 大 学 实 验 报 告实验课程名称: 计算机网络 实验项目名称: Socket 编程 学院: 计算机与软件学院 专业: 计算机科学与技术 报告人: 学号: 班级: 同组人: 指导教师: 实验时间: 2015-05-10 提交时间: 2015年5月29日 声明: 本次实验内容由报告人和同组人独立完成,所有涉及到他人的工作均已说明。报告人和同组人均同意教师及学校为教学活动而引用本实验的内容,且无需事先征得同意和特别说明。教务处制1、实验目的 了解FTP协议的工作原理,掌握基于socket的网络编程的基本原理。2、实验要求用 Socket (WinSock)编程,

2、实现简单的 FTP 客户端:客户端和 FTP 服务器建立 Socket 连接。 向服务器发送 USER、PASS 命令登录 FTP 服务器。 使用 PORT(或PASV) 建立数据连接。 使用 NLST 进行文件列表。 使用 RETR / STOR 命令下载/上传文件。 在下载完毕后断开数据连接并发送 QUIT 命令退出。服务器:Apache Friends 中的 FileZillaFTP,或是 lab:lab 在整个交互的过程中,控制连接始终处于连接的状态。数据连接在每传输一个文件时先打开,传输后关闭3、实验分析设计(1)服务端启动,等待用户连接(2)客户端启动,请求与服务端连接(3)服务端

3、应答,与用户建立连接(4)用户输入目录操作、文件上传下载等指令,服务端接收到指令后进行解析,作出相应的响应(5)重复(4)的过程,直至用户输入quit指令要求离开,服务结束4、核心代码说明#pragma comment(lib,ws2_32)#include#include#include#include#include#include#includeftpClient.husing namespace std;#define MENU Welcome To The FTP Server,Please Input The Command And Enter!Such as: LIST,CWD,

4、RETR,STOR,DELE,RMD,MKD/定义了在ftp服务器上能进行的操作int main() char Dir256; memset(Dir,NULL,256); int returnNum; char ip16; int port; char test; char userName50; memset(userName,NULL,50); strncpy(userName,anonymous,strlen(anonymous); char PWD50; char temp512; char Command4; /char Parameter256; coutip; couttest;

5、 if(test=Y|test=y)/连接到ftp服务器 couttemp; port =(temp0 - 0)*100+(temp1 - 0)*10+(temp2 - 0); /将字符型转化为数值型 memset(temp,NULL,2); else if (test=N|test=n) port = 21; else coutErrorendl; /* 用户登录模块 */ ftpClient* client = new ftpClient(ip,port); couttest; if(test=Y|test=y) coutuserName;/输入登录名 else if (test=N|te

6、st=n) coutUserName:anonymousendl; else coutError Check input!setCommand(USER,userName);/验证登录名 coutuserNamesendCommand(); /向ftp服务器发送用户名 returnNum = client-receiveCommand(); /从ftp服务器接收到的响应码,正确时应为331 if(returnNum = 331) coutPWD;/输入密码 client-setCommand(PASS,PWD); client-sendCommand(); returnNum = client

7、-receiveCommand(); /从ftp服务器接收响应码,正确时应返回230 if(returnNum = 230) /用户已经正确登录到了ftp服务器 while(1) coutMENUendl; cout; cinCommand; if(strcmp(Command,list)=0|strcmp(Command,LIST)=0) /* 连接控制,传输控制,命令传输(需使用 socketData连接的命令,如:LIST) */ client-setCommand(PASV); client-sendCommand(); client-receiveCommand(); client-

8、getPort(); client-setCommand(TYPE,I); client-sendCommand(); client-receiveCommand(); client-interlizeDataSocket(); client-setCommand(LIST, .); coutDirsendCommand(); client-receiveCommand(); client-receiveList(); client-receiveCommand(); else if(strcmp(Command,CWD)=0|strcmp(Command,cwd)=0) memset(Dir

9、,NULL,512); coutPlase input the dir of your will(compelete dir):Dir; client-setCommand(CWD ,Dir); client-sendCommand(); client-receiveCommand(); else if(strcmp(Command,retr)=0|strcmp(Command,RETR)=0) char* filename = new char512; memset(filename,NULL,512); /* 下载模块 */ client-setCommand(PASV); client-

10、sendCommand(); client-receiveCommand(); client-getPort(); client-setCommand(TYPE,I); client-sendCommand(); client-receiveCommand(); client-interlizeDataSocket(); coutfilename; client-setCommand(RETR ,filename); client-sendCommand(); client-receiveCommand(); client-receiveData(filename); client-recei

11、veCommand(); delete filename; else if(strcmp(Command,stor)=0|strcmp(Command,STOR)=0) char* filename = new char512; memset(filename,NULL,512); /* 上传模块 */ client-setCommand(PASV); client-sendCommand(); client-receiveCommand(); client-getPort(); client-setCommand(TYPE,I); client-sendCommand(); client-r

12、eceiveCommand(); client-interlizeDataSocket(); coutfilename; client-setCommand(STOR ,filename); client-sendCommand(); client-receiveCommand(); client-sendData(filename); client-receiveCommand(); delete filename; else if(strcmp(Command,dele)=0|strcmp(Command,DELE)=0)/进入删除文件的程序代码段 char* filename = new

13、 char512; memset(filename,NULL,strlen(filename); coutfilename; client-setCommand(DELE ,filename); client-sendCommand(); client-receiveCommand(); delete filename; else if(strcmp(Command,rmd)=0|strcmp(Command,RMD)=0)/进入删除目录的程序代码段 memset(Dir,NULL,strlen(Dir); coutDir; client-setCommand(RMD ,Dir); clien

14、t-sendCommand(); client-receiveCommand(); else if(strcmp(Command,mkd)=0|strcmp(Command,MKD)=0)/进入修改文件的程序代码段 memset(Dir,NULL,strlen(Dir); coutDir; client-setCommand(MKD ,Dir); client-sendCommand(); client-receiveCommand(); else if(strcmp(Command,QUIT)=0|strcmp(Command,quit)=0)/进入退出文件的程序代码段 break; els

15、e coutNo such COMMAND!; else coutError You can not login in.endl; coutCleaning system resourceendl; /delete userName; /delete Direct; /delete client; coutExiting Goodbyeendl; system(pause);5、测试与结果6、总结与分析本次实验达到了本项实验的初始目的和要求。通过这次实验,我对socket的网络编程有了更清楚的认识,懂得了它怎么联网并对ftp上的文件的上传,下载等操作,知道了怎么把书上的知识在实际中的运用。不过由于对界面的设计还不是很了解,还不能很好地把界面设计出来。希望下次能做得更好! 七、参考资料现代网络技术教程自顶向下分析与设计XX百科XX知道

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1