UDPBackend¶
The UDP operations a socket needs from the runtime. UDPRuntimeBackend is
the production implementation; test code can substitute a fake to drive the
socket state machine without real sockets.
Constructors¶
create¶
Returns¶
- UDPBackend ref^
Public Functions¶
bind¶
Bind a UDP socket to host:port and subscribe the_actor for
readiness events. Returns the ASIO event, or a null event on failure.
fun ref bind(
the_actor: AsioEventNotify tag,
host: String val,
port: String val,
ip_version: IPVersion = DualStack)
: AsioEventID
Parameters¶
- the_actor: AsioEventNotify tag
- host: String val
- port: String val
- ip_version: IPVersion = DualStack
Returns¶
close¶
Close the socket.
Parameters¶
- fd: U32 val
Returns¶
- None val
recvfrom¶
Receive one datagram into buffer. Returns the tri-state socket result,
the number of bytes received, and the sender address.
fun ref recvfrom(
event: AsioEventID,
buffer: Pointer[U8 val] tag,
size: USize val)
: (SocketResult , USize val , NetAddress iso^)
Parameters¶
- event: AsioEventID
- buffer: Pointer[U8 val] tag
- size: USize val
Returns¶
- (SocketResult , USize val , NetAddress iso^)
sendto¶
Send one datagram. Returns SocketResultOk on success,
SocketResultRetry when the OS buffer is full, or SocketResultError
on failure. No byte count: POSIX datagram sendto is all-or-nothing.
Parameters¶
- fd: U32 val
- data: ByteSeq
- to: NetAddress box
Returns¶
sockname¶
Fill ip with the local address of fd. Returns true on success.
Parameters¶
- fd: U32 val
- ip: NetAddress tag
Returns¶
- Bool val