lwIP
2.1.0
Lightweight IP stack
|
Functions | |
err_t | udp_send (struct udp_pcb *pcb, struct pbuf *p) |
err_t | udp_sendto (struct udp_pcb *pcb, struct pbuf *p, const ip_addr_t *dst_ip, u16_t dst_port) |
err_t | udp_sendto_if (struct udp_pcb *pcb, struct pbuf *p, const ip_addr_t *dst_ip, u16_t dst_port, struct netif *netif) |
err_t | udp_sendto_if_src (struct udp_pcb *pcb, struct pbuf *p, const ip_addr_t *dst_ip, u16_t dst_port, struct netif *netif, const ip_addr_t *src_ip) |
err_t | udp_bind (struct udp_pcb *pcb, const ip_addr_t *ipaddr, u16_t port) |
void | udp_bind_netif (struct udp_pcb *pcb, const struct netif *netif) |
err_t | udp_connect (struct udp_pcb *pcb, const ip_addr_t *ipaddr, u16_t port) |
void | udp_disconnect (struct udp_pcb *pcb) |
void | udp_recv (struct udp_pcb *pcb, udp_recv_fn recv, void *recv_arg) |
void | udp_remove (struct udp_pcb *pcb) |
struct udp_pcb * | udp_new (void) |
struct udp_pcb * | udp_new_ip_type (u8_t type) |
User Datagram Protocol module
Bind an UDP PCB.
pcb | UDP PCB to be bound with a local address ipaddr and port. |
ipaddr | local IP address to bind with. Use IP_ANY_TYPE to bind to all local interfaces. |
port | local UDP port to bind with. Use 0 to automatically bind to a random port between UDP_LOCAL_PORT_RANGE_START and UDP_LOCAL_PORT_RANGE_END. |
ipaddr & port are expected to be in the same byte order as in the pcb.
Bind an UDP PCB to a specific netif. After calling this function, all packets received via this PCB are guaranteed to have come in via the specified netif, and all outgoing packets will go out via the specified netif.
pcb | UDP PCB to be bound. |
netif | netif to bind udp pcb to. Can be NULL. |
Sets the remote end of the pcb. This function does not generate any network traffic, but only sets the remote address of the pcb.
pcb | UDP PCB to be connected with remote address ipaddr and port. |
ipaddr | remote IP address to connect with. |
port | remote UDP port to connect with. |
ipaddr & port are expected to be in the same byte order as in the pcb.
The udp pcb is bound to a random local port if not already bound.
void udp_disconnect | ( | struct udp_pcb * | pcb | ) |
Remove the remote end of the pcb. This function does not generate any network traffic, but only removes the remote address of the pcb.
pcb | the udp pcb to disconnect. |
struct udp_pcb* udp_new | ( | void | ) |
Creates a new UDP pcb which can be used for UDP communication. The pcb is not active until it has either been bound to a local address or connected to a remote address.
struct udp_pcb* udp_new_ip_type | ( | u8_t | type | ) |
Create a UDP PCB for specific IP type. The pcb is not active until it has either been bound to a local address or connected to a remote address.
type | IP address type, see lwip_ip_addr_type definitions. If you want to listen to IPv4 and IPv6 (dual-stack) packets, supply IPADDR_TYPE_ANY as argument and bind to IP_ANY_TYPE. |
void udp_recv | ( | struct udp_pcb * | pcb, |
udp_recv_fn | recv, | ||
void * | recv_arg | ||
) |
Set a receive callback for a UDP PCB. This callback will be called when receiving a datagram for the pcb.
pcb | the pcb for which to set the recv callback |
recv | function pointer of the callback function |
recv_arg | additional argument to pass to the callback function |
void udp_remove | ( | struct udp_pcb * | pcb | ) |
Removes and deallocates the pcb.
pcb | UDP PCB to be removed. The PCB is removed from the list of UDP PCB's and the data structure is freed from memory. |
Sends the pbuf p using UDP. The pbuf is not deallocated.
pcb | UDP PCB used to send the data. |
p | chain of pbuf's to be sent. |
The datagram will be sent to the current remote_ip & remote_port stored in pcb. If the pcb is not bound to a port, it will automatically be bound to a random port.
err_t udp_sendto | ( | struct udp_pcb * | pcb, |
struct pbuf * | p, | ||
const ip_addr_t * | dst_ip, | ||
u16_t | dst_port | ||
) |
Send data to a specified address using UDP.
pcb | UDP PCB used to send the data. |
p | chain of pbuf's to be sent. |
dst_ip | Destination IP address. |
dst_port | Destination UDP port. |
dst_ip & dst_port are expected to be in the same byte order as in the pcb.
If the PCB already has a remote address association, it will be restored after the data is sent.
err_t udp_sendto_if | ( | struct udp_pcb * | pcb, |
struct pbuf * | p, | ||
const ip_addr_t * | dst_ip, | ||
u16_t | dst_port, | ||
struct netif * | netif | ||
) |
Send data to a specified address using UDP. The netif used for sending can be specified.
This function exists mainly for DHCP, to be able to send UDP packets on a netif that is still down.
pcb | UDP PCB used to send the data. |
p | chain of pbuf's to be sent. |
dst_ip | Destination IP address. |
dst_port | Destination UDP port. |
netif | the netif used for sending. |
dst_ip & dst_port are expected to be in the same byte order as in the pcb.