【发布时间】:2017-03-27 03:49:40
【问题描述】:
我需要 ftp 服务器中所有文件和文件夹的列表。
是否有与 NLST 类似的命令用于整个服务器,而不仅仅是当前目录?
我使用 PASV 模式。 这是连接到服务器:
void create_socket(int &sock, const char* server_ip, const unsigned short server_port)
{
struct sockaddr_in server_addr;
memset(&server_addr, 0, sizeof(server_addr));// zero out structure
server_addr.sin_family = AF_INET;// internet address family
server_addr.sin_addr.s_addr = inet_addr(server_ip);// server IP address
server_addr.sin_port = htons(server_port);// server port
if ((sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)
{
}
if (connect(sock, (struct sockaddr *) &server_addr, sizeof(server_addr)) < 0)
{
std::cout << "connect error: " << strerror(errno) << std::endl;
exit(1);
}
}
【问题讨论】:
-
你当前的c++代码是如何连接到ftp服务器的?
-
你检查
boost::asio了吗? -
您可能需要一些 FTP 客户端库。使用libcurl
标签: c++ ftp ftp-client