我正在玩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.
添加更多的听众,你叫'reactor.run(前)'为每个端口要听...... –
我在范围(0受审循环(对于我一个,64510)和1025 + 1,而是错误发生 - 对许多文件打开 –
嗯...是...为什么一个进程需要这么多开放端口?这只是荒谬的... –