gpt4 book ai didi

python - 使用线程保持 FTP 控制端口处于事件状态

转载 作者:行者123 更新时间:2023-12-02 02:44:45 24 4
gpt4 key购买 nike

我的 FTP 下载脚本(基于 ftplib)在大量下载时挂起。我正在使用的远程服务器虽然具有高度可配置性(proftpd),但无法通过远程网络施加的防火墙限制。

我在公司被限制使用被动模式,即 IT 不会为我打开允许 ​​FTP 主动模式的端口。

所以,我陷入了被动模式。

远程服务器在进行大量下载后 10 到 15 分钟就会断开连接。

我需要在大型下载期间保持控制连接处于事件状态。我应该使用线程,每十秒发送一个“NOOP”命令吗?如果是这样,请好心人给我发送一些可以解决问题的示例代码吗?我需要将多个值传递给我的 FTP 下载功能。 keepalive 函数不需要传递任何参数。

或者,有没有办法控制我在端口 21(控制连接)上使用的特定套接字,以在端口 nnnnnn 上进行大量下载时保持其事件状态?

非常感谢!

最佳答案

您也可以尝试使用 TCP KeepAlive 功能通过添加以下代码:

import socket
ftp.sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)

TCP KeepAlive 的支持高度依赖于平台和防火墙 - 因此不能保证,但它是为此目的而设计的,并且比添加额外的线程要简单得多。您在哪些平台上工作?

关于python - 使用线程保持 FTP 控制端口处于事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5269012/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com