Ich habe den folgenden Code zu lesen:Python Twiested, wo Client-Eingang
# Copyright (c) Twisted Matrix Laboratories.
# See LICENSE for details.
"""
An example client. Run simpleserv.py first before running this.
"""
from twisted.internet import reactor, protocol
# a client protocol
class EchoClient(protocol.Protocol):
"""Once connected, send a message, then print the result."""
def connectionMade(self):
self.transport.write("Welcome to Calculator!")
# data = ''
def dataReceived(self, data):
"As soon as any data is received, write it back."
print "Server said:\n", data
# self.transport.loseConnection()
def connectionLost(self, reason):
print "connection lost"
class EchoFactory(protocol.ClientFactory):
protocol = EchoClient
def clientConnectionFailed(self, connector, reason):
print "Connection failed - goodbye!"
reactor.stop()
def clientConnectionLost(self, connector, reason):
print "Connection lost - goodbye!"
reactor.stop()
# this connects the protocol to a server running on port 8000
def main():
help(protocol.Protocol)
exit()
f = EchoFactory()
reactor.connectTCP("localhost", 8000, f)
reactor.run()
print 'here'
# this only runs if the module was *not* imported
if __name__ == '__main__':
main()
Was ist der richtige Weg Client Eingabe zu lesen und es an den Server schicken? Ich möchte die Daten mit data = input()
lesen und an den Server self.transport.write(data)
senden. Aber, wo muss ich es auf meinen Code setzen, muss ich eine andere Methode erstellen oder connectionMade
verwenden? Erinnern, das ist eine dauerhafte Verbindung, wo Client etwas an den Server senden, dann den Server verarbeiten und etwas an den Client senden. Und wieder Client etwas an den Server, Server-Prozess es senden und an den Client senden ... (wiederholt)
Danny Culle, warum bei der ersten Verbindung wird diese Methode (connectionMade) 4 Mal aufgerufen? – Caaarlos
Solange Sie EchoClient nur einmal aufrufen, dann sollten Sie je eine pro Verbindung anlegen. –
Sie müssen für diese Art von Aktion ein Protokoll entwerfen, so dass der Client und der Server je nach Ihren Regeln vor- und zurücksprechen. –