|
lwIP
2.0.2
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) |
| 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 IP4_ADDR_ANY 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.
Connect an UDP PCB.
This will associate the UDP PCB with the remote address.
| 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 | ) |
Disconnect a UDP PCB
| pcb | the udp pcb to disconnect. |
| struct udp_pcb* udp_new | ( | void | ) |
Create a UDP PCB.
| struct udp_pcb* udp_new_ip_type | ( | u8_t | type | ) |
Create a UDP PCB for specific IP type.
| 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 | ) |
Remove an UDP 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. |
Send data using UDP.
| 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.