我試圖建立一個客戶端/服務器系統,客戶端發送消息到服務器。服務器只不過是打印出客戶發送的內容。從扭曲的客戶端發送多個郵件到服務器
from twisted.internet import protocol, reactor
class Echo(protocol.Protocol):
def dataReceived(self, data):
print data
self.transport.write(data)
class EchoFactory(protocol.Factory):
def buildProtocol(self, addr):
return Echo()
reactor.listenTCP(8000, EchoFactory())
reactor.run()
的問題是,當我試圖從客戶端發送多個消息與此代碼,客戶提出了第一個連接後出現錯誤,併發送。
from twisted.internet import reactor, protocol
import time
class EchoClient(protocol.Protocol):
def __init__(self, message):
self.message = message
def connectionMade(self):
self.transport.write(self.message)
def dataReceived(self, data):
print "Server said:", data
self.transport.loseConnection()
class EchoFactory(protocol.ClientFactory):
def __init__(self, message):
self.message = message
def buildProtocol(self, addr):
return EchoClient(self.message)
def clientConnectionFailed(self, connector, reason):
print "Connection failed."
reactor.stop()
def clientConnectionLost(self, connector, reason):
print "Connection lost."
reactor.stop()
def sendMessage(message):
reactor.connectTCP("localhost", 8000, EchoFactory(message))
reactor.run()
if __name__ == "__main__":
while True:
r = raw_input(">")
if r == 'q' or len(r) == 0: break
sendMessage(r)
什麼可能是錯的?這是錯誤信息。
>a
Server said: a
Connection lost.
>b
Traceback (most recent call last):
File "echoclient.py", line 38, in <module>
sendMessage(r)
File "echoclient.py", line 32, in sendMessage
reactor.run()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/twisted/internet/base.py", line 1168, in run
self.startRunning(installSignalHandlers=installSignalHandlers)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/twisted/internet/base.py", line 1148, in startRunning
ReactorBase.startRunning(self)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/twisted/internet/base.py", line 680, in startRunning
raise error.ReactorNotRestartable()
twisted.internet.error.ReactorNotRestartable
這個網絡代碼是越野車。你濫用'socket.send'。閱讀文檔。 –