asyncio实现echo服务端
async def handle(reader:StreamReader, writer:StreamWriter):
while True:
writers = []
data = await reader.read(1024)
if not data or data == b'quit':
print('quit !!!')
break
# print(1,reader, 2,writer)
writers.append(writer)
print(3, writers)
client = writer.get_extra_info('peername')
# print(client)
message = '{} your msg {}'.format(client, data.decode()).encode()
for i in writers:
i.write(message)
await writer.drain()
writer.close()
loop = asyncio.get_event_loop()
coro = asyncio.start_server(handle, '127.0.0.1', 9999, loop=loop)
server = loop.run_until_complete(coro)
print(server)
try:
loop.run_forever()
except KeyboardInterrupt:
pass
finally:
server.close()
loop.run_until_complete(server.wait_closed())
loop.close()
</