summaryrefslogtreecommitdiff
path: root/doc/core/examples/simpleclient.py
diff options
context:
space:
mode:
Diffstat (limited to 'doc/core/examples/simpleclient.py')
-rw-r--r--doc/core/examples/simpleclient.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/doc/core/examples/simpleclient.py b/doc/core/examples/simpleclient.py
new file mode 100644
index 0000000..bba9f64
--- /dev/null
+++ b/doc/core/examples/simpleclient.py
@@ -0,0 +1,49 @@
+
+# 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("hello, world!")
+
+ def dataReceived(self, data):
+ "As soon as any data is received, write it back."
+ print "Server said:", 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 runing on port 8000
+def main():
+ f = EchoFactory()
+ reactor.connectTCP("localhost", 8000, f)
+ reactor.run()
+
+# this only runs if the module was *not* imported
+if __name__ == '__main__':
+ main()