summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2014-05-04 10:11:09 -0700
committerGuido van Rossum <guido@python.org>2014-05-04 10:11:09 -0700
commit7c1877af10de2aeb9f5547c5736b0c2dbdfb44b4 (patch)
tree98fbf7d10dcc68be5a50ddb26510c7aa7eed3cdf /examples
parentf521d6a7dd3ddc2e70a88e7972816d25fd9b69ce (diff)
downloadtrollius-7c1877af10de2aeb9f5547c5736b0c2dbdfb44b4.tar.gz
Simple echo client/server example (for Twitter thread).
Diffstat (limited to 'examples')
-rw-r--r--examples/echo_client_tulip.py19
-rw-r--r--examples/echo_server_tulip.py17
2 files changed, 36 insertions, 0 deletions
diff --git a/examples/echo_client_tulip.py b/examples/echo_client_tulip.py
new file mode 100644
index 0000000..9b5d29b
--- /dev/null
+++ b/examples/echo_client_tulip.py
@@ -0,0 +1,19 @@
+import asyncio
+
+END = b'Bye-bye!\n'
+
+@asyncio.coroutine
+def echo_client():
+ reader, writer = yield from asyncio.open_connection('localhost', 8000)
+ writer.write(b'Hello, world\n')
+ writer.write(b'What a fine day it is.\n')
+ writer.write(END)
+ while True:
+ line = yield from reader.readline()
+ print('received:', line)
+ if line == END or not line:
+ break
+ writer.close()
+
+loop = asyncio.get_event_loop()
+loop.run_until_complete(echo_client())
diff --git a/examples/echo_server_tulip.py b/examples/echo_server_tulip.py
new file mode 100644
index 0000000..c1ccb9d
--- /dev/null
+++ b/examples/echo_server_tulip.py
@@ -0,0 +1,17 @@
+import asyncio
+
+@asyncio.coroutine
+def echo_server():
+ yield from asyncio.start_server(handle_connection, 'localhost', 8000)
+
+@asyncio.coroutine
+def handle_connection(reader, writer):
+ while True:
+ data = yield from reader.read(8192)
+ if not data:
+ break
+ writer.write(data)
+
+loop = asyncio.get_event_loop()
+loop.run_until_complete(echo_server())
+loop.run_forever()