1 / 12
文档名称:

c语言小项目:用Socket编程实现FTP.doc

格式:doc   大小:5,123KB   页数:12页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

c语言小项目:用Socket编程实现FTP.doc

上传人:Alone-丁丁 2021/8/22 文件大小:5 MB

下载得到文件列表

c语言小项目:用Socket编程实现FTP.doc

文档介绍

文档介绍:c语言小项目:用Socket编程实现FTP
D
格式:int PASCAL FAR select(int nfds,fd_set FAR * readfds,fd_set FAR * writefds,
fd_set FAR * exceptfds,const struct timeval FAR * timeout);
参数:readfds:指向要做读检测的指针
writefds:指向要做写检测的指针
exceptfds:指向要检测是否出错的指针
timeout:最大等待时间
7、关闭套接字——closesocket()
功能:关闭套接字s
格式:BOOL PASCAL FAR closesocket(SOCKET s);
FTP 下载文件流程
FTP 服务端和客户端之间存在两中连接:一中用于传输 FTP 命令(命令必须由客户端主动发起),连接始终存在;另一中用于向客户端传输数据,每当要传输文件或目录文件列表信息时则建立一个数据连接,数据传输完毕立即断开。 数据连接有两种建立方式:客户端监听某端口,服务器主动发起数据连接。服务器监听某端口,客户端主动发起数据连接。下载文件之前首先需要登陆,登陆的状态图如图 2 所示。如果前面发送的命令均得到成功响应,则表示服务器数据准备完毕。下面需要做的是与服务建立数据连接,开始接受数据,并将接收到的数据保存在本地文件中,直到接收完毕后断开数据连接,下载完毕。通过访问全局变量获得 FTP 服务器 IP 地址和端口号,以及登陆的用户名和密码,登陆服务器。 为了实现FTP下载文件能成功,我觉得用代码和图片解释比较好,但文字描述不清楚,所以用代码的比较多,虽然觉得不好,但我只能这样。
流程图
流程图 1
(一)FTP客户端的主要代码

#include ""
#include ""
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
()函数
BOOL CListItem::ParseLine(CString strLine)
{
if(())
return FALSE;
char ch = (0);
if(ch == 'd' || ch == 'D'){
m_bDirectory = TRUE;
}
else
if(ch == '-')
m_bDirectory = FALSE;
else{
if(("<DIR>") != -1 || ("<dir>") != -1)
m_bDirectory = TRUE;
else
m_bDirectory = FALSE;
if(() < 40)
return FALSE;
m_strName = (39);
m_strDate = (18);
();
();
return TRUE;
}
m_bSec = 0;
for(int i = 0; i < 9; i++){
ch = (i);
if(ch == '-')
m_bSec |= 0x01;
m_bSec <<= 1;
}
m_strSec = (1, 9);
int ndx = (':');
if(ndx == -1){
if(() > 56)
ndx = 51;
else
return FALSE;
}
m_index = ndx;
m_strName = (ndx + 3);
();
();
m_strDate = (ndx - 9, 12);
return TRUE;
}
(二)客户端运行后的界面