【问题标题】:How to intentionally reset a connection?如何故意重置连接?
【发布时间】:2022-01-08 23:22:50
【问题描述】:

我目前正在做一个从文本文档的链接下载 .mp4 文件的项目,它适用于此代码

import urllib.request
import random
import threading

def request(line):
    urllib.request.urlretrieve(line, 'D:\\example_directory\\' +
                               str(random.randint(1000000, 9999999)) + "-69" +
                               str(random.randint(100, 999)) + "-" +
                               str(random.randint(1000000, 9999999)) + ".mp4")

with open('D:\\example_directory\\links.txt') as f:
    for line in f:
        print(line)
        threading.Thread(target=request, args=(line,)).start()

我想使用此代码从专为流媒体构建的网站下载视频,因此将大约 5 秒后的下载速度限制为 120kb/s。我找到了绕过此限制的方法:重置您的连接。可以通过插入和拔出以太网电缆或再次打开和关闭 WiFi 来手动重置连接。

我想知道是否有任何方法可以重置连接,而无需插入和拔出电缆/打开和关闭 WiFi。就像可以导入的包或函数一样,但小故障也会有所帮助。

【问题讨论】:

  • threading.Thread(target=request(line)).start() 并没有按照你的想法去做。
  • target=request(line) 部分执行request(line) 并将关键字参数target 设置为等于它返回的值(即None)。请改用Thread(target=lambda line=line: request(line))
  • 已修复,我从旧文件中复制了错误的代码

标签: python multithreading api connection-reset


【解决方案1】:

如您所说,您可以通过重新连接到网络来重置您的连接。 据我所知,没有模块可以故意重置连接,但您可以使用此方法获得类似的结果:

  • 首先,通过以太网(电缆)连接
  • 然后使用“winwifi”模块重置您的连接 示例:
import winwifi
def reset():
  winwifi.disconnect()

因为您已连接到以太网,连接会在几分之一秒内恢复,因此会重置。 我希望这对您有所帮助,并在您的编码冒险之旅中度过一段美好的旅程;)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-20
    • 2020-07-29
    • 1970-01-01
    • 2012-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    相关资源
    最近更新 更多