diff options
| author | Guido van Rossum <guido@python.org> | 2013-10-17 15:37:47 -0700 |
|---|---|---|
| committer | Guido van Rossum <guido@python.org> | 2013-10-17 15:37:47 -0700 |
| commit | aa8ca3a0e22289dfe2dc14935730af6b199539bf (patch) | |
| tree | 325aa7d9d584f40e4e48a36536fd97b9a34bff56 /examples/sink.py | |
| parent | 4e43e8312f55cd98a53cdafecbdd953f60ed415c (diff) | |
| parent | 1baab9131db010f8372ae63ae30b74ff3b4cbb17 (diff) | |
| download | trollius-aa8ca3a0e22289dfe2dc14935730af6b199539bf.tar.gz | |
Merge
Diffstat (limited to 'examples/sink.py')
| -rw-r--r-- | examples/sink.py | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/examples/sink.py b/examples/sink.py index bb29be2..eab6ffa 100644 --- a/examples/sink.py +++ b/examples/sink.py @@ -1,14 +1,28 @@ """Test service that accepts connections and reads all data off them.""" +import argparse import sys from asyncio import * +ARGS = argparse.ArgumentParser(description="TCP data sink example.") +ARGS.add_argument( + '--iocp', action='store_true', dest='iocp', + default=False, help='Use IOCP event loop (Windows only)') +ARGS.add_argument( + '--host', action='store', dest='host', + default='127.0.0.1', help='Host name') +ARGS.add_argument( + '--port', action='store', dest='port', + default=1111, type=int, help='Port number') + server = None + def dprint(*args): print('sink:', *args, file=sys.stderr) + class Service(Protocol): def connection_made(self, tr): @@ -32,21 +46,26 @@ class Service(Protocol): def connection_lost(self, how): dprint('closed', repr(how)) + @coroutine -def start(loop): +def start(loop, host, port): global server - server = yield from loop.create_server(Service, 'localhost', 1111) + server = yield from loop.create_server(Service, host, port) dprint('serving', [s.getsockname() for s in server.sockets]) yield from server.wait_closed() + def main(): - if '--iocp' in sys.argv: + args = ARGS.parse_args() + if args.iocp: from asyncio.windows_events import ProactorEventLoop loop = ProactorEventLoop() set_event_loop(loop) - loop = get_event_loop() - loop.run_until_complete(start(loop)) + else: + loop = get_event_loop() + loop.run_until_complete(start(loop, args.host, args.port)) loop.close() + if __name__ == '__main__': main() |
