在多个Twisted端点上监听

3 投票
1 回答
682 浏览
提问于 2025-04-17 16:35

我有多个服务器端点,它们在不同的端口上监听,使用的是相同的协议和工厂。

我怎么知道哪个端点先建立了连接呢?

endpoint1 = TCP4ServerEndpoint(reactor, 8007)
endpoint.listen(QOTDFactory())
endpoint2 = TCP4ServerEndpoint(reactor, 8008)
endpoint2.listen(QOTDFactory())

等等....

1 个回答

2

你无法区分这些对象,因为你创建的对象完全一样。如果你想区分它们,可以考虑像下面这样的做法:

endpoint1 = TCP4ServerEndpoint(reactor, 8007)
endpoint.listen(QOTDFactory("tweedledee"))
endpoint2 = TCP4ServerEndpoint(reactor, 8008)
endpoint2.listen(QOTDFactory("tweedledum"))

然后,在 QOTDFactory.buildProtocol 里,你可以很简单地打印出你的工厂是 tweedledee 还是 tweedledum

撰写回答