我正在玩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,而是錯誤發生 - 對許多文件打開 –
嗯...是...爲什麼一個進程需要這麼多開放端口?這只是荒謬的... –