【发布时间】:2011-08-15 19:49:38
【问题描述】:
我正在使用应用程序框架编写一个扭曲的 P2P 客户端。传入连接的侦听端口将位于随机(操作系统确定的)端口上。但是,我需要一种方法来确定创建后的端口是什么:
import twisted... etc.
application = service.Application('vmesh')
peerservice = MyPeerService()
servicecollection = service.IServiceCollection(application)
factory = MyPeerFactory(peerservice)
server = internet.TCPServer(0, factory) # listen on random port
listen_port = server.getHost().port # ??? doesn't work...
server.setServiceParent(servicecollection)
我在文档中找不到任何关于查询由internet.TCPServer() 或reactor.listenTCP() 创建的端口并将其转发到的任何内容。我不能简单地等待连接发生,因为客户端必须宣布其端口才能使这些连接发生。
【问题讨论】: