 [det]udp_send(+Socket, 
+Data, +To, +Options)
[det]udp_send(+Socket, 
+Data, +To, +Options)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.