这段代码已运行就出现[*],然后只能重启服务。以下两个问题错误类似,麻烦同志们解答以下。
使用Twisted创建简单服务器
from twisted.internet import reactor
from twisted.internet.protocol import Protocol,Factory
class SimpleLogger(Protocol):
def connectionMade(self):
print('Got connection from',self.transportr.client)
def connectionLost(self,reason):
print(self.transport.client,'disconnected')
def dataReceiveda(self,data):
print(data)
factory = Factory()
factory.buildProtocolpro = SimpleLogger
reactor.listenTCP(12345,factory)
reactor.run()
---------------------------------------------------------------------------
ReactorNotRestartable Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_38332\167504512.py in <cell line: 19>()
17
18 reactor.listenTCP(12345,factory)
---> 19 reactor.run()
D:\anaconda3\lib\site-packages\twisted\internet\base.py in run(self, installSignalHandlers)
1280
1281 def run(self, installSignalHandlers=True):
-> 1282 self.startRunning(installSignalHandlers=installSignalHandlers)
1283 self.mainLoop()
1284
D:\anaconda3\lib\site-packages\twisted\internet\base.py in startRunning(self, installSignalHandlers)
1260 """
1261 self._installSignalHandlers = installSignalHandlers
-> 1262 ReactorBase.startRunning(self)
1263
1264
D:\anaconda3\lib\site-packages\twisted\internet\base.py in startRunning(self)
763 raise error.ReactorAlreadyRunning()
764 if self._startedBefore:
--> 765 raise error.ReactorNotRestartable()
766 self._started = True
767 self._stopped = False
ReactorNotRestartable:
使用协议LineReceive改进后的日志服务器
from twisted.internet import reactor
from twisted.internet.protocol import Factory
from twisted.protocols.basic import LineReceiver
class SimpleLogger(LineReceiver):
def connectionMade(self):
print('Got connection from', self.transport.client)
def connectionLost(self, reason):
print(self.transport.client, 'disconnected')
def lineReceived(self, line):
print(line)
factory = Factory()
factory.protocol = SimpleLogger
reactor.listenTCP(1234, factory)
reactor.run()
---------------------------------------------------------------------------
ReactorNotRestartable Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_38332\4145974300.py in <cell line: 17>()
15
16 reactor.listenTCP(1234, factory)
---> 17 reactor.run()
D:\anaconda3\lib\site-packages\twisted\internet\base.py in run(self, installSignalHandlers)
1280
1281 def run(self, installSignalHandlers=True):
-> 1282 self.startRunning(installSignalHandlers=installSignalHandlers)
1283 self.mainLoop()
1284
D:\anaconda3\lib\site-packages\twisted\internet\base.py in startRunning(self, installSignalHandlers)
1260 """
1261 self._installSignalHandlers = installSignalHandlers
-> 1262 ReactorBase.startRunning(self)
1263
1264
D:\anaconda3\lib\site-packages\twisted\internet\base.py in startRunning(self)
763 raise error.ReactorAlreadyRunning()
764 if self._startedBefore:
--> 765 raise error.ReactorNotRestartable()
766 self._started = True
767 self._stopped = False
ReactorNotRestartable:
用多进程试试