Jump to content

    
IvanPletnev

LWIP как изменить размер исходящего пакета?

Recommended Posts

Уважаемые коллеги, здравствуйте!

Делаю устройство на STM32F427 с использованием LWIP Sockets. Отправляю в сокет пакеты длиной 9 байт с частотой 120Гц. На приёмной стороне среднее количество полученных девятибайтовых пакетов за секунду 120. То есть все пакеты доходят до адресата отлично. Но! Wireshark мне показывает вот такую картину. Он говорит, что за секунду отправляется 5 TCP пакетов с payload 216 байт. То есть 24 девятибайтовых посылки в одном пакете. Мне нужно передавать быстроменяющийся сигнал, и за 200мс он безнадежно устареет.

Вопрос такой. Как сделать, чтобы LWIP старался отправить TCP пакет сразу, а не накапливал данные в буфере? Я понимаю, что такой подход неэффективен, но нужно именно так.

Заранее благодарю за ответы.

Screenshot_59.png

Screenshot_60.png

Share this post


Link to post
Share on other sites
1 hour ago, Arlleex said:

tcp_nagle_disable()?

Ну или нафиг TCP... Может, лучше UDP?

UDP тоже надо сделать. Позже займусь) А как определить текущий PCB  для tcp_nagle_disable? 

Share this post


Link to post
Share on other sites

Да, коллеги, это делается элементарно, оказывается.

int optValue = 1;
setsockopt(newconn, IPPROTO_TCP, TCP_NODELAY, (void*)&optValue, sizeof(optValue));

Работает идеально, я получил, что хотел.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.