远程计算机上的curl_easy_setopt(curl,CURLOPT_FTPPORT,str)-地址不可用

远程计算机上的curl_easy_setopt(curl,CURLOPT_FTPPORT,str)-地址不可用,ftp,libcurl,Ftp,Libcurl,我正在尝试使用函数“curl\u easy\u setopt”和“CURLOPT\u ftsupport”选项,将模式从被动更改为主动 在本地计算机上,该功能按预期工作 在远程计算机上,当我使用curl\u easy\u setopt(curl,CURLOPT\u FTPPORT,“-”)时,有一个连接(我可以在filezilla服务器日志中看到,文件也在传输) 但是,当我使用curl\u easy\u setopt(curl,CURLOPT\u ftsupport,“TEST\u STRING

我正在尝试使用函数“curl\u easy\u setopt”和“CURLOPT\u ftsupport”选项,将模式从被动更改为主动

在本地计算机上,该功能按预期工作

在远程计算机上,当我使用
curl\u easy\u setopt(curl,CURLOPT\u FTPPORT,“-”)
时,有一个连接(我可以在filezilla服务器日志中看到,文件也在传输)

但是,当我使用
curl\u easy\u setopt(curl,CURLOPT\u ftsupport,“TEST\u STRING”)//TEST\u STRING包括ip:port
,没有连接。在filezilla服务器日志中,将显示以下信息:

在非本地地址字段上绑定(端口=21):地址不可用

拒绝命令,请求的IP地址与控制连接IP不匹配

我的代码:

curl_easy_setopt(m_curl, CURLOPT_FTPPORT, "192.168.19.19:21");
rc = curl_easy_perform(m_curl);
rc返回旋度错误28-已达到超时

此外,我尝试了几个端口,并用netstat命令检查了它们。

您的值是错误的

  • 首先,它不能是端口21。它必须是一个免费的本地端口。在大多数系统上,它也必须大于1024

  • IP地址必须是您的本地地址,而不是FTP服务器地址。它必须是FTP服务器接受您的连接的地址


一般来说,你应该使用被动模式,而不是主动模式。有关详细信息,请参阅我的文章。

您的值是错误的

  • 首先,它不能是端口21。它必须是一个免费的本地端口。在大多数系统上,它也必须大于1024

  • IP地址必须是您的本地地址,而不是FTP服务器地址。它必须是FTP服务器接受您的连接的地址


一般来说,你应该使用被动模式,而不是主动模式。有关详细信息,请参阅我的文章