ASD100288 0 21 августа, 2017 Опубликовано 21 августа, 2017 · Жалоба Добрый день! Нужна помощь. Есть задача посылать UDP пакеты с отладочной платы ZC706 c определенной частотой. За основу взял следующий код и библиотеку lwip: while (1) { xemacif_input(netif); count++; if (count == 80000) { p = pbuf_alloc(PBUF_TRANSPORT, buflen, PBUF_POOL); if (!p) { xil_printf("error allocating pbuf \r\n"); return ERR_MEM; } PayloadID(data); // функция генерации данных memcpy(p->payload, data, buflen); udp_send(udp_1, p); xil_printf("\n SEND UDP Packets \r\n"); count = 0; pbuf_free(p); } } Возникает следующая проблема: при просмотре на приемном компе с помощью Wireshark наблюдаю, что первый пакет выходит одновременно со вторым с минимальной задержкой (как будто второй его выталкивет), третий выходит один с задержкой, четвертый выходит вместе с пятым и т.д. Кто-нибудь знает почему так может быть? Почему пакеты через один выходят сразу по два? Через отладчик вижу что функция udp_send проходит нормально через if (count == 80000), но на приемнике пакеты слипаются. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kuzmi4 0 21 августа, 2017 Опубликовано 21 августа, 2017 · Жалоба 2 ASD100288: Ключевое словосочетание тут "на приемном компе". Если вы работает из под-оси то у вас всегда будет, скажем так, внутренее "манагерство" пакетов осью В принципе как опыт - попробуйте задать интервалы в секунд 10-20 и посмотреть что будет ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться