LwIP UDP部分常见函数精简

本文简要介绍了LwIP轻量级TCP/IP协议栈中UDP协议的常用函数,包括创建UDP连接、发送数据、接收数据及关闭连接等核心操作。通过这些函数,开发者可以更好地理解和应用LwIP在UDP通信场景下的功能。
摘要由CSDN通过智能技术生成
struct ip_globals
{
   
  /** The interface that accepted the packet for the current callback invocation. */
  struct netif *current_netif;
  /** The interface that received the packet for the current callback invocation. */
  struct netif *current_input_netif;
#if LWIP_IPV4
  /** Header of the input packet currently being processed. */
  struct ip_hdr *current_ip4_header;
#endif /* LWIP_IPV4 */
#if LWIP_IPV6
  /** Header of the input IPv6 packet currently being processed. */
  struct ip6_hdr *current_ip6_header;
#endif /* LWIP_IPV6 */
  /** Total header length of current_ip4/6_header (i.e. after this, the UDP/TCP header starts) */
  u16_t current_ip_header_tot_len;
  /** Source IP address of current_header */
  ip_addr_t current_iphdr_src;
  /** Destination IP address of current_header */
  ip_addr_t current_iphdr_dest;
};
extern struct ip_globals ip_data;


#define IP_IS_ANY_TYPE_VAL(ipaddr)              0
#define IP_ADDR_PCB_VERSION_MATCH_EXACT(pcb, ipaddr) 1
#define ip_current_dest_addr()   (&ip_data.current_iphdr_dest)
struct ip_globals ip_data;

#define IPADDR_ANY          ((u32_t)0x00000000UL)
#define ip4_addr_isany_val(addr1)   ((addr1).addr == IPADDR_ANY)
#define ip4_addr_isany(addr1) ((addr1) == NULL || ip4_addr_isany_val(*(addr1)))
#define ip_addr_isany(ipaddr)                   ip4_addr_isany(ipaddr)

#define ip4_addr_cmp(addr1, addr2) ((addr1)->addr == (addr2)->addr)
#define ip_addr_cmp(addr1, addr2)               ip4_addr_cmp(addr1, addr2)

static u8_t
udp_input_local_match(struct udp_pcb *pcb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值