FTP客户机.docx
- 文档编号:23798053
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:8
- 大小:154.25KB
FTP客户机.docx
《FTP客户机.docx》由会员分享,可在线阅读,更多相关《FTP客户机.docx(8页珍藏版)》请在冰豆网上搜索。
FTP客户机
武汉轻工大学数学与计算机学院
《TCP/IPSocket编程》
FTP客户机
学号:
姓名:
指导老师:
班级:
网工1301
2016年5月26日
课设要求:
编写一个FTP客户机程序,具体要求如下:
要求实现的程序为图形化界面,可以输入FTP服务的相关信息(包括IP地址、用户名与密码),输出交互过程中的FTP命令与响应信息,以及从FTP服务器获得的文件(或目录)列表
要求实现USER、PASS、PASV、LIST与QUIT命令。
点击“Connect”按钮,实现USER与PASS命令;点击“List”按钮,实现PASV与LIST命令;点击“Quit”按钮,实现QUIT命令。
图形界面为:
知识点
FTP服务,它使用文件传输协议(FTP,FileTransferProtocol)
每个FTP服务器有自己的FTP服务器名,例如很多FTP服务器提供匿名FTP服务,它有一个公开的账号(通常为anonymous)
FTP客户机主要有3种:
FTP命令行程序、WWW浏览器与FTP客户机程序
FTP服务是一种有连接的服务,采用的传输层协议是TCP协议
FTP客户机与服务器之间传输控制信息,用于完成某个FTP操作
FTP命令:
FTP客户机向服务器发送的操作请求
FTP响应:
FTP服务器根据操作情况向客户机返回的信息
1.建立控制连接
FTP客户机调用socket()函数建立套接字
FTP客户机填充服务器的套接字地址
FTP客户机调用connect()函数请求与服务器建立连接
FTP客户机接收与分析服务器返回的响应信息
主要代码:
voidCFtpClientDlg:
:
OnConnect()
{
GetDlgItemText(IDC_EDIT3,m_Address);
GetDlgItemText(IDC_EDIT4,m_Account);
GetDlgItemText(IDC_EDIT5,m_Password);
WSADATAWSAData;
if(WSAStartup(MAKEWORD(2,2),&WSAData)!
=0)_addr;
}
sockaddr_inserveraddr;.\r\n";
intnConnect;
nConnect=connect(SocketControl,(sockaddr*)&serveraddr,sizeof(serveraddr));
if(nConnect==SOCKET_ERROR)录FTP服务器
登录FTP服务器使用USER与PASS命令,分别用来输入用户名与密码
USER与PASS命令按规定顺序出现
FTP客户机向服务器发送USER命令
FTP客户机向服务器发送PASS命令
3.列出FTP目录
LIST命令用来返回当前目录中的信息,需要使用数据连接传输目录信息
建立数据连接有2种方法:
PORT或PASV命令
PORT方式称为主动模式,FTP客户机指定用于数据连接的端口
PASV方式称为被动模式,FTP服务器在响应信息中指出用于数据连接的端口
主要代码:
voidCFtpClientDlg:
:
OnList()
{
if(!
DataConnect())....\r\n";
while(true)
{
charListBuf[MAX_SIZE];
memset(ListBuf,0,MAX_SIZE);
nRecv=recv(SocketData,ListBuf,MAX_SIZE,0);
intnRecv;
if(nRecv==SOCKET_ERROR)出FTP服务器
FTP客户机向服务器发送QUIT命令
断开FTP客户机与服务器之间的控制连接
释放控制连接使用的套接字
主要代码:
voidCFtpClientDlg:
:
OnQuit()
{
memset(Command,0,MAX_SIZE);//合成QUIT命令
memcpy(Command,"QUIT",strlen("QUIT"));
memcpy(Command+strlen("QUIT"),"\r\n",2);
if(!
SendCommand())//发送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.使用VisualC++编译程序
设计MFC图形界面为:
6.实验总结
理解FTP工作原理,就会对实验的过程和运行更加清晰。
在本次实验中我们是在郑凯同学的一步一示范中去完成每一步的实验的,虽然最终顺利完成了实验,但是对于具体代码段的分析并不是很了解只是清楚每一步骤如何去实验然后最终完整ftp客户端。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FTP 客户机