用户编程时 需要获取FTP服务器文件的列表
以便查看文件的相关信息
一般情况下
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("PROT "+m_host+"\r\n");
//调用CArchive类的WriteString()函数发送
m_archive->Flush();
客户端发送端口之后
必须在该端口上进行监听
以便接受服务器的连接请求
监听代码如下
m_Client.Create(111,SOCK_STREAM,NULL); //创建在111端口上监听的套接字
m_Client.Listen(); //进行监听
当用户向服务器发送LIST命令后
服务器会向客户端提供IP地址和端口号发出连接请求
try
{
m_archive->WriteString(