|
我用NXP官方提供的lwip例程测试UDP收发数据,可以接收服务器的广播包,数据却发送不出去,不知什么原因,只好来此求助
使用回调函数处理接收数据,初始化代码如下:
struct udp_pcb *UdpPcb;
UdpPcb = udp_new();//UDP广播模式初始化
if (UdpPcb != NULL)
{
err_t err;
err = udp_bind(UdpPcb, IP_ADDR_BROADCAST, 2010);
if (err == ERR_OK)
{
udp_recv(UdpPcb, UDP_Receive, NULL);
}
}
回调函数代码如下:
void UDP_Receive(void *arg, struct udp_pcb *upcb, struct pbuf *p,
ip_addr_t *addr, u16_t port)
{
UDP_BOARDCAST_ACK ack = {0};
TCPUDP_PACKAGE *pkg = NULL;
if (p != NULL)
{
pkg = (TCPUDP_PACKAGE *) p->payload;//从TCP协义缓冲区里提取数据
p->len = p->tot_len = sizeof(UDP_BOARDCAST_ACK);
p->payload = (void*)&ack;
udp_sendto(upcb, p, addr, port);
pbuf_free(p);
}
}
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|