asyncio标准库5 TCP echo client and server

it2022-05-05  169

asyncio标准库5 TCP echo client and server

server

import asyncio async def handle_echo(reader, writer): data = await reader.read(100) message = data.decode() addr = writer.get_extra_info('peername') print("Received %r from %r" % (message, addr)) print("Send: %r" % message) writer.write(data) await writer.drain() print("Close the client socket") writer.close() loop = asyncio.get_event_loop() coro = asyncio.start_server(handle_echo, '127.0.0.1', 8888, loop=loop) server = loop.run_until_complete(coro) # Serve requests until Ctrl+C is pressed print('Serving on {}'.format(server.sockets[0].getsockname())) try: loop.run_forever() except KeyboardInterrupt: pass # Close the server server.close() loop.run_until_complete(server.wait_closed()) loop.close()

client

import asyncio async def tcp_echo_client(message, loop): reader, writer = await asyncio.open_connection('127.0.0.1', 8888, loop=loop) print('Send: %r' % message) writer.write(message.encode()) data = await reader.read(100) print('Received: %r' % data.decode()) print('Close the socket') writer.close() message = 'Hello World!' loop = asyncio.get_event_loop() loop.run_until_complete(tcp_echo_client(message, loop)) loop.close() # server Serving on ('127.0.0.1', 8888) Received 'Hello World!' from ('127.0.0.1', 43000) Send: 'Hello World!' Close the client socket Received 'Hello World!' from ('127.0.0.1', 43006) Send: 'Hello World!' Close the client socket Received 'Hello World!' from ('127.0.0.1', 43008) Send: 'Hello World!' Close the client socket Received 'Hello World!' from ('127.0.0.1', 43010) Send: 'Hello World!' Close the client socket Received 'Hello World!' from ('127.0.0.1', 43012) Send: 'Hello World!' Close the client socket # client Send: 'Hello World!' Received: 'Hello World!' Close the socket Send: 'Hello World!' Received: 'Hello World!' Close the socket .... posted on 2018-03-19 12:41 北京涛子 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/liujitao79/p/8601296.html


最新回复(0)