ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 апреля
940538 Топик полностью
Dingo (15.08.2019 09:50 - 09:54, просмотров: 215) ответил SciFi на То есть если IP_SOF_BROADCAST == 0, то ip_set_option(udp_pcb, SOF_BROADCAST) не обязательно.
Это для RAW фрагмент, и вроде так, но UDP не отправлял, пока не установил флажок. Искал через отладку: /* lwipopts.h */ #define LWIP_DEBUG LWIP_DBG_ON #define UDP_DEBUG LWIP_DBG_ON #define LWIP_DBG_TYPES_ON LWIP_DBG_ON Поймал сообщения "udp_send: No route to {ip.dest}". С флажком - нормально. Использую без dhcp, адрес шлюза задан. Чтобы 2 раза не вставать, для UDP: /* udp.c */ #if IP_SOF_BROADCAST /* broadcast filter? */ if (!ip_get_option(pcb, SOF_BROADCAST) && ip_addr_isbroadcast(dst_ip, netif)) { LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_LEVEL_SERIOUS, ("udp_sendto_if: SOF_BROADCAST not enabled on pcb %p\n", (void *)pcb)); return ERR_VAL; } #endif /* IP_SOF_BROADCAST */ То есть, если не выполнены все условия, то не отправит, даже через udp_sendto(); Спасибо вам за направление поисков.