as(Type)
option of udp_receive/4.
The are interpreted differently though. No Type corresponds
to CVT_ALL
of PL_get_chars(). Using atom
corresponds to CVT_ATOM
and any of string
or
codes
is mapped to CVT_STRING|CVT_LIST
,
allowing for a SWI-Prolog string object, list of character codes or list
of characters. Finally, term
maps to CVT_WRITE_CANONICAL
.
This implies that arbitrary Prolog terms1write_canonical/2
does not support blobs nor cyclic terms
can be sent reliably using the option list [as(term),encoding(utf8)])
,
using the same option list for udp_receive/4.A simple example to send UDP data is:
send(Host, Port, Message) :- udp_socket(S), udp_send(S, Message, Host:Port, []), tcp_close_socket(S).
A broadcast is achieved by using tcp_setopt(Socket, broadcast)
prior to sending the datagram and using the local network broadcast
address as a ip/4
term.