void broadlink_broadcast_init(void)
{
struct pbuf *p;
SET_IP4_ADDR(&broadlink_ip, BROADLINK_IP_ADDR);
/* Create a new UDP control block */
broadlink_infor.upcb = udp_new();
p = pbuf_alloc(PBUF_TRANSPORT, sizeof(sm), PBUF_RAM);
p->payload = (void*)sm;
p->len =8;
p->tot_len = 8;
broadlink_infor.upcb->local_port = UDP_CLIENT_PORT;
udp_connect(broadlink_infor.upcb, &broadlink_ip, BROADLINK_PORT);
udp_send(broadlink_infor.upcb, p);
/* Bind the pbroadlink_upcb to any IP address and the UDP_PORT port*/
udp_bind(broadlink_infor.upcb, IP_ADDR_ANY, UDP_CLIENT_PORT);
udp_recv(broadlink_infor.upcb, broadlink_rec_callback, NULL);
/* Reset the pbroadlink_upcb */
udp_disconnect(broadlink_infor.upcb); //如果去掉这个函数,sever端将无法收到数据
/* Free the p buffer */
pbuf_free(p);
}
能否解释下,为什么要去掉udp_disconnect(broadlink_infor.upcb)函数才能将数据发送出去,为什么? 还是我哪里设置有问题?求解 |
|
这段代码是官方的?