Snippets

emptypage Async TCP communication example

Created by Masaaki Shibata
import asyncio
from asyncio import StreamReader, StreamWriter


async def client_connected(reader: StreamReader, writer: StreamWriter) -> None:

    peername = writer.get_extra_info('peername')
    print(f'connected: {peername}')

    while True:
        try:
            data = await reader.readuntil()
        except asyncio.IncompleteReadError as e:
            print('IncompleteReadError occured.')
            break
        writer.write(data)
        await writer.drain()
    writer.close()
    await writer.wait_closed()
    print(f'closed: {peername}')


async def main() -> None:
    server = await asyncio.start_server(client_connected, 'localhost', 6000)

    async with server:
        await server.serve_forever()


if __name__ == '__main__':
    try:
        asyncio.run(main())
    except KeyboardInterrupt as e:
        pass

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.