import asyncio import socket class CustomProto(asyncio.DatagramProtocol): def connection_made(self, transport): print('ready to receive datagrams on', transport.get_extra_info('sockname')) def error_received(self, exc): print('Error:', exc) def datagram_received(self, data, addr): print('Datagram received:', data) loop = asyncio.get_event_loop() loop.set_debug(True) transport, protocol = loop.run_until_complete(loop.create_datagram_endpoint(CustomProto, local_addr=('::1', 9999))) loop.run_forever()