Function silc_net_udp_connect
SYNOPSIS
SilcStream
silc_net_udp_connect(const char *local_ip_addr, int local_port,
const char *remote_ip_addr, int remote_port,
SilcSchedule schedule);
DESCRIPTION
This function creates UDP stream. The UDP stream is bound to the
`local_ip_addr' if it is specified. If `local_port' is non-zero the
stream is bound to that port. If the `remote_ip_addr' and `remote_port'
is also provided, packets may be sent to that address using
silc_stream_write function and packets may be received using
silc_stream_read function.
If the remote address is not provided the stream is in connectionless
state. This means that packets can be received only by using
silc_net_udp_receive and sent only by using the function
silc_net_udp_send.
To receive packets the silc_stream_set_notifier must be called for the
returned SilcStream. The packets are always received in the notifier
callback when the SILC_STREAM_CAN_READ is returned to the callback
To read the packet use silc_stream_read if the remote address was
provided, and silc_net_udp_receive if it was not.
Supports IPv6 if the platform supports it.
EXAMPLE
SilcStream udpstream;
// Create UDP stream and prepare to receive packets
udpstream = silc_net_udp_connect("10.2.1.7", 5000,
"10.2.1.100, 5000, schedule);
silc_stream_set_notifier(udpstream, schedule, receive_callback, context);
// Send packet to remote host
silc_stream_write(udpstream, data, data_len);
Create UDP listener:
udpstream = silc_net_udp_connect("0.0.0.0", 500, NULL, 0, schedule);
silc_stream_set_notifier(udpstream, schedule, receive_callback, context);
|