lwip的UDP_Test_Init
// 如果在回调函数中发送数据,不用connect; 在回调函数外发送数据必须要connect,否则接收不到数据 void UDP_Test_Init(void)
{
p_tx = pbuf_alloc(PBUF_RAW, sizeof(UDPData), PBUF_RAM); // 按照指定类型分配一个pbuf结构体 // struct pbuf *p_tx; p_tx->payload = (void *)UDPData; // DI16实际发送数据内存区
local_addr.addr = 0x0A01A8C0; // 本地IP地址:192.168.1.10
UdpPcb = udp_new(); // 创建udp协议控制块
udp_bind(UdpPcb, &local_addr, 1025); // 在协议控制块中绑定本地ip地址和本地端口号,本地:开发板(程序下到开发板中)
udp_connect(UdpPcb, IP_ADDR_ANY, 1025); // 与远端udp主机建立连接,远端:笔记本
udp_recv(UdpPcb, UDP_Receive, NULL); // 设置数据接收时的回调函数
}
///////////////////
ip地址在这里绑定
void udp_test_init(void)
{
struct udp_pcb *pcb;//创建UDP协议栈指针
pcb = udp_new();//创建 udp协议栈
udp_bind(pcb,IP_ADDR_ANY,2000);//绑定ip地址和端口
udp_recv(pcb,Udp_Test_Receive,NULL);//回调函数在此
}