Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import asyncio
- import signal
- LISTEN_HOST = '0.0.0.0'
- LISTEN_PORT = 8888
- writers = []
- async def handler(reader, writer):
- writers.append(writer)
- buf = b''
- nbr_lines = 0
- while True:
- data = await reader.read(100)
- if not data:
- break
- data = buf + data
- lines = data.split(b'\n')
- buf = lines.pop()
- nbr_lines += len(lines)
- print('{} lines sent'.format(nbr_lines))
- writer.close()
- async def run(loop):
- def close():
- for writer in writers:
- writer.close()
- server.close()
- server = await asyncio.start_server(
- handler, LISTEN_HOST, LISTEN_PORT, loop=loop)
- for signame in ('SIGINT', 'SIGTERM'):
- signum = getattr(signal, signame)
- loop.add_signal_handler(signum, close)
- await server.wait_closed()
- if __name__ == '__main__':
- loop = asyncio.get_event_loop()
- loop.run_until_complete(run(loop))
- loop.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement