Вход
Наше всё
Теги
codebook
无线电组件
Поиск
Опросы
Закон
Среда
17 сентября
О смысле всего сущего
0xFF
Средства и методы разработки
Мобильная и беспроводная связь
Блошиный рынок
Объявления
Микроконтроллеры
PLD, FPGA, DSP
AVR
PIC
ARM, RISC-V
Технологии
Кибернетика, автоматика, протоколы
Схемы, платы, компоненты
Средства и методы разработки
1541350
Топик полностью
Taнeнбayм
(10.09.2025 17:36, просмотров: 3)
ответил
IBAH
на
Долбалбаный линукс! UDP сокет. Хочу читать по байту: recv(fd, &buf, 1, 0); Сука, читает только первый байт из пакета, остальные исчезают. ЧЯДНТ?! Причем ioctl(fd, FIONREAD, &bytes); показывает что весь пакет пришел.
У функции recv (и ей подобных) есть параметр flags. MSG_PEEK - это то значение flags, что Вам нужно.
Проще сразу считать весь буфер - а то ведь, если по одному байту медленно считывать, неизвестно, сколько UDP-пакетов за это время канет в /dev/null.
Eddy_Em
(296 знак., 10.09.2025 17:42
)