湘雪龙 发表于 2014-3-6 15:59:21

LPC1766+lwip UDP发送不了数据

我用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);
        }
}

页: [1]
查看完整版本: LPC1766+lwip UDP发送不了数据