gpt4 book ai didi

python - 监听多个端口

转载 作者:太空宇宙 更新时间:2023-11-04 09:06:54 25 4
gpt4 key购买 nike

我正在尝试使用 Twisted 并创建了一个简单的“服务器”。
我想让服务器监听多个端口 (1025-65535) 而不是一个端口。
我该怎么做?

我的代码:

from twisted.internet.protocol import Protocol,ServerFactory
from twisted.internet import reactor

class QuickDisconnectProtocol(Protocol):
def connectionMade(self):
print "Connection from : ", self.transport.getPeer()
self.transport.loseConnection() # terminate connection


f = ServerFactory()
f.protocol = QuickDisconnectProtocol
reactor.listenTCP(6666,f)
reactor.run()

已经试过了:

for i in range (0, 64510):
reactor.listenTCP(1025+i,f)

reactor.run()

但是收到一个错误:

Traceback (most recent call last):
File "Server.py", line 14, in <module>
File "/usr/lib/python2.7/dist-packages/twisted/internet/posixbase.py", line 436, in listenTCP
File "/usr/lib/python2.7/dist-packages/twisted/internet/tcp.py", line 641, in startListening
twisted.internet.error.CannotListenError: Couldn't listen on any:2044: [Errno 24] Too many open files.

最佳答案

每个监听端口都需要一个文件描述符(“打开的文件”),每个文件描述符占用最大文件描述符配额的一个元素。

This stack overflow question有一个解释如何在 Linux 上提高这个限制的答案,this blog post有关于如何在 OS X 上执行此操作的资源。

也就是说,其他受访者告诉您这不是一件特别理智的事情是对的。特别是,如果您实际上一直达到 65535,您的操作系统可能会停止工作,这会否决整个 ephemeral port range。 ,这意味着您可能无法再从这台机器建立 TCP 客户端连接。因此,最好在您的问题中解释为什么您正在尝试这样做。

关于python - 监听多个端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19707746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com