Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用TwistedPython是否有一种机制可以找到类似于socket.open的空闲端口? 问题_Python_Twisted_Message Queue - Fatal编程技术网

使用TwistedPython是否有一种机制可以找到类似于socket.open的空闲端口? 问题

使用TwistedPython是否有一种机制可以找到类似于socket.open的空闲端口? 问题,python,twisted,message-queue,Python,Twisted,Message Queue,与此问题类似— 除了Twisted抽象出对reactor方法后面的套接字的访问,比如listenTCP或类似的UDP,我还没有找到一种机制,可以让reactor找到一个空闲的套接字并绑定/侦听它。像这样: reactor.listenTCP(0, ...) 像这样: reactor.listenTCP(0, ...) 通常情况下,您不希望为服务器使用随机端口,否则将如何连接到它。如果你真的想要一个随机端口,那么生成一个随机数,给它分配一个套接字,然后测试它是否成功。@smac89最初它与0M

与此问题类似—

除了Twisted抽象出对reactor方法后面的套接字的访问,比如
listenTCP
或类似的
UDP
,我还没有找到一种机制,可以让reactor找到一个空闲的套接字并绑定/侦听它。

像这样:

reactor.listenTCP(0, ...)
像这样:

reactor.listenTCP(0, ...)

通常情况下,您不希望为服务器使用随机端口,否则将如何连接到它。如果你真的想要一个随机端口,那么生成一个随机数,给它分配一个套接字,然后测试它是否成功。@smac89最初它与0MQ有关,但我放弃了这部分问题,并修复了大部分标记。@ron我编写了一个桌面进程管理器,可以根据需要启动各种twisted.web.Site应用程序,它们都会向stderr发出一个神奇的令牌,告诉管理器应用程序正在哪个端口上运行。类似地,我正在从事一个项目,该项目使用多个0mq侦听套接字来协调多个进程之间的工作,它们都检查hadoop的zookeeper之类的东西,以报告它们的地址和端口。通常,您不希望为服务器使用随机端口,否则您将如何连接到它。如果你真的想要一个随机端口,那么生成一个随机数,给它分配一个套接字,然后测试它是否成功。@smac89最初它与0MQ有关,但我放弃了这部分问题,并修复了大部分标记。@ron我编写了一个桌面进程管理器,可以根据需要启动各种twisted.web.Site应用程序,它们都会向stderr发出一个神奇的令牌,告诉管理器应用程序正在哪个端口上运行。类似地,我正在从事一个项目,该项目使用多个0mq侦听套接字来协调多个进程之间的工作,它们都检查hadoop的zookeeper之类的东西,以报告它们的地址和端口。谢谢,我已经阅读了Twisted的大量源代码,但我没有读到这一个。有没有一种体面的方法来查找端口号?我知道由
listenTCP
返回的对象有一个私有属性
\u realPortNumber
,但是有没有一种不使用该属性的方法来获取它呢?请注意,这是针对HTTP客户端的get方法的单元测试,其思想是找到一个未使用的端口,在其上发布一个web服务器,获取它。@PeterWestlake最简单的方法是从listenTCP获取返回的对象-单元测试可能不会绑定真正的HTTP端口。也许可以看看treq的RequestTraversalAgent。谢谢,我已经阅读了Twisted的大量源代码,但我没有读到。有没有一种体面的方法来找到端口号?我知道由
listenTCP
返回的对象有一个私有属性
\u realPortNumber
,但是有没有一种不使用该属性的方法来获取它呢?请注意,这是针对HTTP客户端的get方法的单元测试,其思想是找到一个未使用的端口,在其上发布一个web服务器,获取它。@PeterWestlake最简单的方法是从listenTCP获取返回的对象-单元测试可能不会绑定真正的HTTP端口。也许可以看看特雷克的RequestTraversalAgent。