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);//回调函数在此

}

 

sitemap