Как использовать разные протоколы с разными реакторами в одной программе?
Нет.В каждом процессе есть только один реактор, и он может обрабатывать столько соединений, сколько вы хотите.Подавляющее большинство библиотек не предоставляют реактор, и реактор, предоставляемый txNetTools, не является обязательным.Единственное, что он предоставляет, - это метод:
def listenICMP(self, port, protocol, interface="", maxPacketSize=8192):
p = icmp.Port(port, protocol, interface, maxPacketSize, self)
p.startListening()
return p
Если вы хотите использовать другой реактор, вы можете просто создать экземпляр icmp.Port
.
Как начать большеодин клиент за один раз?
Точно так же, как вы запускаете один, но повторяется.Например, вот десять одновременных пингеров (включая ответ на первый вопрос):
for i in range(10):
p = icmp.Port(0, Pinger(), reactor=reactor)
p.startListening()
reactor.run()
chameco дает прекрасный ответ на последний вопрос.