#python-3.x #telnetlib
Вопрос:
Я автоматизирую стресс-тестирование, подключения по телетайпу. У меня открыто много сеансов telnet, и я отправляю данные клиенту с сервера. Есть ли способ определить, получает ли клиент данные?
terminals.py
import telnetlib
class Terminal:
def __init__(self, host, port):
self.host = host
self.port = port
def listen_for_signal(self):
tn = telnetlib.Telnet(self.host, 3215, 90)
tn.set_debuglevel(1)
tn.read_until(b"Name:")
tn.write(self.port.encode('ascii') b"rn")
tn.read_all()
main.py
from Terminal import Terminal
import threading
ports = ['000', '001']
HOST = "IP.address"
threads = {}
terminals = {}
for port in ports:
try:
terminals[port] = Terminal(HOST, port)
threads[port] = threading.Thread(
target=terminals[port].listen_for_signal, daemon=True)
threads[port].start() # start thread
except:
pass
while True:
pass
Я могу получить вывод клиентских подключений. Но мне нужно убедиться, что данные, поступающие по каждому соединению, активны. Есть ли способ проверить, является ли соединение активным и получает ли передаваемые данные? Мне действительно не нужно проверять, что это за данные, просто они передаются.
Я пытался сохранить tn.read_all()
в файл, но он блокирует соединение.
Я действительно не могу использовать многопроцессорную обработку, так как мне нужно больше терминалов, чем у меня ядер.