Wait for and return the next datagram. The Data is returned as a
Prolog term depending on Options. From is a term of the format
Ip:Port indicating the sender of the message. Here, Ip is either
an ip4 or ip6 structure. Socket can be waited for using
wait_for_input/3. Defined Options:
- as(+Type)
- Defines the type for Data. Possible values are
atom
, codes
,
string
(default) or term
(parse as Prolog term).
- encoding(+Encoding)
- Specify the encoding used to interpret the message. It is one of
octet
. iso_latin_1
, text
or utf8
.
- max_message_size(+Size)
- Specify the maximum number of bytes to read from a UDP
datagram. Size must be within the range 0-65535. If unspecified,
a maximum of 4096 bytes will be read.
For example:
receive(Port) :-
udp_socket(Socket),
tcp_bind(Socket, Port),
repeat,
udp_receive(Socket, Data, From, [as(atom)]),
format('Got ~q from ~q~n', [Data, From]),
fail.