3.3.4 获取FTP服务器文件信息(1)
当用户编程时,需要获取FTP服务器文件的列表,以便查看文件的相关信息。在接下来的内容中,将讲解怎样获取FTP服务器文件的相关知识。
(1) 获取文件列表
一般情况下,FTP文件列表信息是通过客户端和服务器端之间的数据通道获取的。编程中,用户可以向服务器发送LIST命令,服务器接收到该命令以后会向客户端返回FTP目录下的文件列表信息。用户需要注意,在PORT模式下传输数据时,客户端需要向服务器提交本地IP地址和用于返回数据的端口号:
CSocket m_Client; //客户端套接字变量
CString m_host; //IP地址字符串变量
UINT nport,port=111; //端口号
m_Client.GetSockName(m_host, nport); //调用函数获得本地的IP地址
m_host.Format(m_host + ",%d", port); //格式化字符串
用户使用PORT命令可以向服务器发送端口号码。格式如"PORT"+string。其中string表示已经格式化的IP和端口字符串。例如下面的代码:m_archive->WriteString("PORT " + m_host + "\r\n");
//调用CArchive类的WriteString()函数发送
m_archive->Flush();
当客户端发送端口之后,必须在该端口上进行监听,以便接受服务器的连接请求。用户需要注意,在服务器和客户端连接关闭以前