《FTP客户机.pdf》由会员分享,可在线阅读,更多相关《FTP客户机.pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、其身正,不令而行;其身不正,虽令不从。论语丹青不知老将至,贫贱于我如浮云。杜甫武汉轻工大学数学与计算机学院 TCP/IP Socket 编程 FTP 客户机 学 号:姓 名:指导老师:天行健,君子以自强不息。地势坤,君子以厚德载物。易经大丈夫处世,不能立功建业,几与草木同腐乎?罗贯中 2016 年 5 月 26 日 班 级:网工 1301 百学须先立志。朱熹穷则独善其身,达则兼善天下。孟子课设要求:编写一个 FTP 客户机程序,具体要求如下:要求实现的程序为图形化界面,可以输入FTP服务的相关信息(包括 IP 地址、用户名与密码),输出交互过程中的 FTP 命令与响应信息,以及从 FTP 服务
2、器获得的文件(或目录)列表 要求实现 USER、PASS、PASV、LIST 与 QUIT 命令。点击“Connect”按钮,实现 USER 与 PASS 命令;点击“List”按钮,实现 PASV 与 LIST命令;点击“Quit”按钮,实现 QUIT 命令。图形界面为:丈夫志四方,有事先悬弧,焉能钧三江,终年守菰蒲。顾炎武常将有日思无日,莫待无时思有时。增广贤文 知识点 FTP 服务,它使用文件传输协议(FTP,File Transfer Protocol)每个 FTP 服务器有自己的 FTP 服务器名,例如很多 FTP 服务器提供匿名 FTP 服务,它有一个公开的账号(通常为 anony
3、mous)FTP 客户机主要有 3 种:FTP 命令行程序、WWW 浏览器与 FTP 客户机程序 FTP 服务是一种有连接的服务,采用的传输层协议是 TCP 协议 计算机网络客户进程FTP 客户机服务进程FTP 服务器数据连接临时端口控制连接熟知端口2120 FTP 客户机与服务器之间传输控制信息,用于完成某个 FTP 操作 天行健,君子以自强不息。地势坤,君子以厚德载物。易经丈夫志四方,有事先悬弧,焉能钧三江,终年守菰蒲。顾炎武FTP 命令:FTP 客户机向服务器发送的操作请求 FTP 响应:FTP 服务器根据操作情况向客户机返回的信息 1.建立控制连接 FTP 客户机调用 socket()
4、函数建立套接字 FTP 客户机填充服务器的套接字地址 FTP 客户机调用 connect()函数请求与服务器建立连接 FTP 客户机接收与分析服务器返回的响应信息 主要代码:void CFtpClientDlg:OnConnect()GetDlgItemText(IDC_EDIT3,m_Address);GetDlgItemText(IDC_EDIT4,m_Account);GetDlgItemText(IDC_EDIT5,m_Password);WSADATA WSAData;if(WSAStartup(MAKEWORD(2,2),&WSAData)!=0)_addr;sockaddr_in
5、 serveraddr;.rn;我尽一杯,与君发三愿:一愿世清平,二愿身强健,三愿临老头,数与君相见。白居易忍一句,息一怒,饶一着,退一步。增广贤文 int nConnect;nConnect=connect(SocketControl,(sockaddr*)&serveraddr,sizeof(serveraddr);if(nConnect=SOCKET_ERROR)录 FTP 服务器 登录 FTP 服务器使用 USER 与 PASS 命令,分别用来输入用户名与密码 USER 与 PASS 命令按规定顺序出现 FTP 客户机向服务器发送 USER 命令 FTP 客户机向服务器发送 PASS
6、命令 3.列出 FTP 目录 LIST 命令用来返回当前目录中的信息,需要使用数据连接传输目录信息 建立数据连接有 2 种方法:PORT 或 PASV 命令 PORT 方式称为主动模式,FTP 客户机指定用于数据连接的端口 PASV 方式称为被动模式,FTP 服务器在响应信息中指出用于数据连接的端口 主要代码:void CFtpClientDlg:OnList()勿以恶小而为之,勿以善小而不为。刘备吾日三省乎吾身。为人谋而不忠乎?与朋友交而不信乎?传不习乎?论语 if(!DataConnect().rn;while(true)char ListBufMAX_SIZE;memset(ListBu
7、f,0,MAX_SIZE);nRecv=recv(SocketData,ListBuf,MAX_SIZE,0);int nRecv;if(nRecv=SOCKET_ERROR)出 FTP 服务器 FTP 客户机向服务器发送 QUIT 命令 断开 FTP 客户机与服务器之间的控制连接 释放控制连接使用的套接字 主要代码:void CFtpClientDlg:OnQuit()memset(Command,0,MAX_SIZE);/合成 QUIT 命令 memcpy(Command,QUIT,strlen(QUIT);memcpy(Command+strlen(QUIT),rn,2);if(!Sen
8、dCommand()/发送 QUIT 命令 return;古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。苏轼丹青不知老将至,贫贱于我如浮云。杜甫 else if(RespondCode=221)/判断 QUIT 应答码 m_Login+=Server:;m_Login+=Respond;m_Directory=;else MessageBox(QUIT 响应错误!);closesocket(SocketControl);WSACleanup();return;UpdateData(false);closesocket(SocketControl);WSACleanup();/释放套接字绑定 丹青不知老将至,贫贱于我如浮云。杜甫志不强者智不达,言不信者行不果。墨翟 5.使用 Visual C+编译程序 设计 MFC 图形界面为:勿以恶小而为之,勿以善小而不为。刘备古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。苏轼 人不知而不愠,不亦君子乎?论语人之为学,不日进则日退,独学无友,则孤陋而难成;久处一方,则习染而不自觉。顾炎武 6.实验总结 理解 FTP 工作原理,就会对实验的过程和运行更加清晰。在本次实验中我们是在郑凯同学的一步一示范中去完成每一步的实验的,虽然最终顺利完成了实验,但是对于具体代码段的分析并不是很了解只是清楚每一步骤如何去实验然后最终完整 ftp 客户端。