Represents a UDP socket.
- ofNative :: (
- native : UV.UDP.Socket
- )
Membership type for multicast operations.
- leaveGroup : Membership
- enterGroup : Membership
Creates a new UDP socket.
Equations
- Std.Internal.IO.Async.UDP.Socket.mk = do let native ← Std.Internal.UV.UDP.Socket.new pure { native := native }
Binds the UDP socket to the given address. Address reuse is enabled to allow rebinding the same address.
Associates the UDP socket with the given address and port, so every message sent by this socket is automatically sent to that destination.
Sends data through an UDP socket. The addr
parameter specifies the destination address. If addr
is none
, the data is sent to the default peer address set by connect
.
Receives data from an UDP socket. size
is for the maximum bytes to receive.
The promise resolves when some data is available or an error occurs. If the socket
has not been previously bound with bind
, it is automatically bound to 0.0.0.0
(all interfaces) with a random port.
Gets the local address of the UDP socket.
Equations
Gets the remote address of the UDP socket. On unconnected handles, it throws the .invalidArgument
.
error.
Equations
Enables or disables broadcasting for the UDP socket.
Equations
- s.setBroadcast enable = s.native.setBroadcast enable
Enables or disables multicast loopback for the UDP socket.
Equations
- s.setMulticastLoop enable = s.native.setMulticastLoop enable
Sets the time-to-live (TTL) for multicast packets.
Equations
- s.setMulticastTTL ttl = s.native.setMulticastTTL ttl
Sets the membership for joining or leaving a multicast group.
Equations
- s.setMembership multicastAddr interfaceAddr Std.Internal.IO.Async.UDP.Membership.leaveGroup = s.native.setMembership multicastAddr interfaceAddr 0
- s.setMembership multicastAddr interfaceAddr Std.Internal.IO.Async.UDP.Membership.enterGroup = s.native.setMembership multicastAddr interfaceAddr 1
Sets the multicast interface for sending packets.
Equations
- s.setMulticastInterface interfaceAddr = s.native.setMulticastInterface interfaceAddr