Skip to content

Instantly share code, notes, and snippets.

@bashkirtsevich
Created October 11, 2017 19:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save bashkirtsevich/b9b98f277abf4626633598ffdf7d984f to your computer and use it in GitHub Desktop.
Save bashkirtsevich/b9b98f277abf4626633598ffdf7d984f to your computer and use it in GitHub Desktop.
asyncio UDP client
import asyncio
class EchoClientProtocol:
def __init__(self, message, loop):
self.message = message
self.loop = loop
self.transport = None
def connection_made(self, transport):
self.transport = transport
print('Send:', self.message)
self.transport.sendto(self.message.encode())
def datagram_received(self, data, addr):
print("Received:", data.decode())
print("Close the socket")
self.transport.close()
def error_received(self, exc):
print('Error received:', exc)
def connection_lost(self, exc):
print("Socket closed, stop the event loop")
loop = asyncio.get_event_loop()
loop.stop()
loop = asyncio.get_event_loop()
message = "Hello World!"
connect = loop.create_datagram_endpoint(
lambda: EchoClientProtocol(message, loop),
remote_addr=('127.0.0.1', 9999))
transport, protocol = loop.run_until_complete(connect)
loop.run_forever()
transport.close()
loop.close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment