尝试从FTP下载时,Libcurl返回错误7 我正在开发一个C++程序,从FTP下载文件并上传到另一个FTP服务器。
起初,我认为问题可能是因为FTP服务器有一个密码,但在删除它之后,没有任何更改。我已尝试将用户名和密码放入尝试从FTP下载时,Libcurl返回错误7 我正在开发一个C++程序,从FTP下载文件并上传到另一个FTP服务器。,c++,libcurl,C++,Libcurl,起初,我认为问题可能是因为FTP服务器有一个密码,但在删除它之后,没有任何更改。我已尝试将用户名和密码放入CURLOPT_URL和CURLOPT_USERPWD 下面是一些源代码。请注意,此处对其进行了修改,因此其中没有个人信息。我没有真正连接到example.com struct FtpFile ftpfile = { "document.pdf", NULL }; curl_global_init(CURL_GLOBAL_DEFAULT); curl = curl_easy_
CURLOPT_URL
和CURLOPT_USERPWD
下面是一些源代码。请注意,此处对其进行了修改,因此其中没有个人信息。我没有真正连接到example.com
struct FtpFile ftpfile = {
"document.pdf",
NULL
};
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "ftp://example.com/foo.pdf");
curl_easy_setopt(curl, CURLOPT_USERPWD, "User:Pass");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, my_fwrite);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &ftpfile);
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
if(CURLE_OK != res) {
printf("Oh, Fiddle Sticks. What now?\n");
fprintf(stderr, "Error Code: %d\n", res);
}
}
curl_global_cleanup();
我希望它能通过User:Pass
登录到example.com
上的FTP服务器。但是,当我尝试从FTP服务器下载时,出现错误7
以下是程序的输出:
Downloading... This Device <-- Remote Server
* timeout on name lookup is not supported
* Closing connection 0
Oh Fiddle Sticks, What now?
Error Code: 7
正在下载。。。不支持此设备名称查找超时
可以解析主机名吗?错误7是CURLE\u COULDNT\u CONNECT
(“无法将()连接到主机或代理”)。有什么不清楚的?这与身份验证无关,与您尝试从中下载的主机/端口有关。你知道,example.com
不是一个真正的网站,对吧?或者你只是把它作为一个例子(没有pin码),而你真正的代码正在使用一个真正的主机?正如它所说的,它被修改了。我可能应该更清楚,所以我现在编辑了它。在程序中,真正的主机是我的IP地址,真正的用户名和密码是我的用户名和密码。真正的程序没有尝试连接到example.com
。我能够解析实际程序中的主机名。您尝试连接的服务器没有在端口25上运行服务器,或者某个服务器(如防火墙)正在阻止您对该服务器端口的TCP连接尝试。它在FTP(21)的标准端口上运行。我可以试着暂时禁用主机上的防火墙,不过当我回家的时候。我今天想到的另一个想法是将被动端口从50100-51100更改为默认端口,尽管这可能会把事情搞砸,因为我的路由器是NAT路由器。