【发布时间】:2020-01-24 21:44:18
【问题描述】:
这是我的第一个要求.. :)
我在使用 QT 框架并从 FTP 服务器下载单个文件(12kb 长)时遇到了一些问题。有关该问题的一些信息:
- 环境是 linux Embedded (yocto) 使用 QT 5.10
- 设备的网络连接是以太网,通过 LTE 连接(quectel 调制解调器 mc25)
- ftp 服务器没有 tlc 和 ssl 保护(客户的 ftp 服务器..)
- 服务器端口是2121
- 使用普通以太网(RJ 电缆)连接也可以使用相同的代码
- 通过调制解调器进行相同的 LTE 连接,使用“wget”linux 工具进行下载。
- ftp 客户端模式是被动的(我已阅读 wget 输出)
- 在不同的 ftp 服务器上尝试(地址和服务器不同)我从来没有遇到过问题,相同的代码在其他 ftp 服务器上工作(肯定有 tlc 和 ssl 保护),也使用 LTE 调制解调器。
- 问题仅出在该 ftp 上,同时也在上传文件。
我的经验是我没有来自QNetworkAccessManager 的错误消息,也没有来自QNetworkRequest 对象的错误消息。根本没有分析器,没有错误。捕获QmetaObjectChange 信号,我只看到来自服务器的代码200 和文件的大小。停下来。
有什么想法可以帮助我找到我为什么要尝试这种奇怪的行为的原因吗? 感谢您的帮助。
阿尔贝托。
【问题讨论】:
-
请出示您的实际代码。也许您只是错误地使用了
QNetworkAccessManager或QNetworkRequest,但我们看不到您在做什么。 -
嗨 Remi,代码基于这个例子.. code.qt.io/cgit/qt/qtbase.git/tree/examples/network/… ..infact 适用于所有 ftp 服务器和所有连接,除了那个!
-
更新:我使用 ubuntu PC 和 qt5.10 从公司外部(我在家)尝试了上述示例代码,但无法下载文件。上面的代码给了我以下警告.. qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method qt.network.ssl: QSslSocket: cannot resolve SSLv2_server_method 很奇怪,因为在嵌入式设备上使用 qt 没有给我那个警告。但是结果是一样的:我无法下载文件!
-
似乎问题出在删除 sslv2 的 openssl 上。我必须重新编译 openssl 以启用该协议.. askubuntu.com/questions/711863/… 谢谢大家! :)