A Python 3 asyncio datagram library
Project description
jetblack-datagram
A Python 3 asyncio helper library for UDP datagram clients and servers.
Installation
Install using pip.
pip install jetblack-datagram
Getting Started
To create an echo server:
import asyncio
from jetblack_datagram import create_datagram_server
async def main():
server = await create_datagram_server(('127.0.0.1', 9999))
count = 0
while count < 5:
count += 1
print("Reading")
data, addr = await server.read()
print('Received %r from %s' % (data, addr))
print('Send %r to %s' % (data, addr))
server.sendto(data, addr)
print("Closing")
server.close()
print("Waiting for server to close")
await server.wait_closed()
print("Closed")
print("Done")
if __name__ == '__main__':
asyncio.run(main())
To create an echo client:
import asyncio
from jetblack_datagram import create_datagram_client
async def main():
client = await create_datagram_client(('127.0.0.1', 9999))
print("Sending data")
client.send(b'Hello, World!')
print("reading data")
data = await client.read()
print(f'Received {data!r}')
print("closing client")
client.close()
print("waiting for client to close")
await client.wait_closed()
if __name__ == '__main__':
asyncio.run(main())
Usage
The UDP protocol is connection-less, so unlike TCP it makes to sense to provide a reader for each server connection.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for jetblack_datagram-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3c0aec09f592411ca6c72f89f121ea4c47b03a652e9e984ee9ea203099d55bb |
|
MD5 | 13b169eb333e0dbc93444a95540d15ee |
|
BLAKE2b-256 | 2bcb8cd1eebe46119586dfa7f0c991b999e45ae0ce72d39831734ae3bcf96952 |