【问题标题】:FTP passive mode connection refusedFTP 被动模式连接被拒绝
【发布时间】:2014-03-20 20:29:53
【问题描述】:

我正在创建 ftp 客户端,但遇到了问题。

首先,我创建了一个套接字,我在其中发送了 USER 和 PASS,然后 PASV 接收了 IP 和 PORT,然后创建了第二个数据套接字并尝试连接,但是出现了问题。

它将连接 5 次 6,但在第 6 次出现错误111 Connection Refused,我不知道如何解决这个问题。

【问题讨论】:

    标签: c++ sockets ftp


    【解决方案1】:

    PASV 的响应文本没有标准化格式(EPSV 有),因此请确保正确解析 IP/端口,因为您可能会收到 real- 使用的许多不同格式之一世界服务器:

    227 Entering Passive Mode (h1,h2,h3,h4,p1,p2).
    227 Entering Passive Mode (h1,h2,h3,h4,p1,p2
    227 Entering Passive Mode. h1,h2,h3,h4,p1,p2
    227 =h1,h2,h3,h4,p1,p2
    

    只是为了展示一些可能性。

    如果您正确解析 IP/端口但仍无法连接,则服务器在 IP/端口上的客户端连接过多,并且没有可用的插槽供您连接,或者 IP/端口被防火墙/路由器阻止,服务器在向您报告 IP/端口时不知道。

    不幸的是,connection refused 错误无法提供任何方法来区分这些条件,因此您所能做的就是在传输失败之前尝试连接几次,或者发送ABOR 通知服务器关闭当前的被动 IP/端口,然后发送新的PASV 以获取新的 IP/端口。

    【讨论】:

    • 我解析正确,因为它有时会连接。无论如何,我会试试 ABOR。
    猜你喜欢
    • 2015-01-16
    • 2017-08-08
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2018-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多