# Module Uq_datagram

    module Uq_datagram: sig .. end

# Datagrams

    type datagram_type = [ `Inet6_udp | `Inet_udp | `Unix_dgram ]

- ``Unix_dgram`: Datagrams over Unix domain sockets

- ``Inet_udp`: Internet v4 UDP protocol
- ``Inet6_udp`: Internet v6 UDP protocol

    class type wrapped_datagram_socket = object .. end

A `wrapped_datagram_socket` allows datagrams to be sent via proxies.

    class type datagram_socket_provider = object .. end

This is a factory for `wrapped_datagram_socket` objects.

    val datagram_provider : ?proxy:#datagram_socket_provider ->
           datagram_type ->
           Unixqueue.event_system ->
           wrapped_datagram_socket Uq_engines.engine

This engine creates a datagram socket as demanded by the `datagram_type`, optionally using `proxy` for sending and receiving datagrams.

The socket is unconnected.

The socket is in non-blocking mode, and the close-on-exec flag is set.