Я создал python клиент, который создает несколько сокетов для загрузки / выгрузки файлов с сервера. Я неоднократно замечал, что при загрузке слишком большого количества данных мой маршрутизатор перезагружался, и мой inte rnet был отключен в течение приблизительно 3 минут. Я читал, что это происходит, когда предел пропускной способности превышен. Как я могу установить ограничение пропускной способности для всех открытых сокетов в то время?
Я мог бы найти это: https://pypi.org/project/aiothrottle/ Но при использовании этого модуля я больше не могу использовать свой модуль сокетов и нужно использовать aiohttp, что должно означать для меня воссоздание моего дырочного python клиента.
# simplified version of my code #
import socket
ip = "1.1.1.1"
port = 8080
def start():
mysocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
mysocket.connect((ip, port))
mysocket.send(str.encode("GET " + "Data" + "HTTP/1.1 \r\n"))
mysocket.sendto(str.encode("GET " + "Data" + "HTTP/1.1 \r\n"), (ip, port))
except socket.error:
print("e")
mysocket.close()
while i in range(4): # here I am creating multiple sockets to upload/download data from different hosts
t = Thread(target=start)
t.start()
Как изменить код так, чтобы ни один из потоков, содержащих сокет, не превысил ограничение пропускной способности?