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 terms can be sent reliably using the option
list `[as(term)
,encoding(utf8)
])`, using the same option list
for udp_receive/4.For example
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.