aiocoap.util.asyncio.recvmsg module¶
-
class
aiocoap.util.asyncio.recvmsg.
RecvmsgDatagramProtocol
¶ Bases:
asyncio.protocols.BaseProtocol
Callback interface similar to asyncio.DatagramProtocol, but dealing with recvmsg data.
-
datagram_msg_received
(data, ancdata, flags, address)¶ Called when some datagram is received.
-
datagram_errqueue_received
(data, ancdata, flags, address)¶ Called when some data is received from the error queue
-
error_received
(exc)¶ Called when a send or receive operation raises an OSError.
-
-
class
aiocoap.util.asyncio.recvmsg.
RecvmsgSelectorDatagramTransport
(loop, sock, protocol, waiter)¶ Bases:
asyncio.transports.BaseTransport
A simple loop-independent transport that largely mimicks DatagramTransport but interfaces a RecvmsgSelectorDatagramProtocol.
This does not implement any flow control, based on the assumption that it’s not needed, for CoAP has its own flow control mechanisms.
-
max_size
= 4096¶
-
close
()¶ Close the transport.
Buffered data will be flushed asynchronously. No more data will be received. After all buffered data is flushed, the protocol’s connection_lost() method will (eventually) called with None as its argument.
-
sendmsg
(data, ancdata, flags, address)¶
-
-
aiocoap.util.asyncio.recvmsg.
create_recvmsg_datagram_endpoint
(loop, factory, sock)¶ Create a datagram connection that uses recvmsg rather than recvfrom, and a RecvmsgDatagramProtocol protocol type.
This is used like the create_datagram_endpoint method of an asyncio loop, but implemented in a generic way using the loop’s add_reader method; thus, it’s not a method of the loop but an independent function.
Due to the way it is used in aiocoap, socket is not an optional argument here; it could be were this module ever split off into a standalone package.