Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ndk sendto() error
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
owl
Кто-нибудь сталкивался со следующей проблемой:
Приложение передает данные по UDP, скорость передачи примерно 1Мбайт/сек. После некоторого времени sendto() возвращает -1. fdError() возвращает ENOBUFS.
Т.е, насколько я понимаю, стек не может выделить память для создаваемого пакета данных.
Стек протоколов версии 1.92. Проц Tms320DM6437.
Vasiliy Rufitskiy
Цитата(owl @ Dec 11 2007, 11:35) *
Кто-нибудь сталкивался со следующей проблемой:
Приложение передает данные по UDP, скорость передачи примерно 1Мбайт/сек. После некоторого времени sendto() возвращает -1. fdError() возвращает ENOBUFS.
Т.е, насколько я понимаю, стек не может выделить память для создаваемого пакета данных.
Стек протоколов версии 1.92. Проц Tms320DM6437.


Мой проц Tms320DM642
У меня такая проблема возникала при использовании демона типа "UDP-echo". Если клиент посылал запросы очень часто , то sendto начинал возвращать -1.
Лечил этот трабл созданием отдельной "Вещающей" задачи и "слушающего" демона. После этого баг исчез.
owl
Цитата(Vasiliy Rufitskiy @ Dec 12 2007, 18:13) *
Мой проц Tms320DM642
У меня такая проблема возникала при использовании демона типа "UDP-echo". Если клиент посылал запросы очень часто , то sendto начинал возвращать -1.
Лечил этот трабл созданием отдельной "Вещающей" задачи и "слушающего" демона. После этого баг исчез.

Попробовал обойтись без DaemonNew(); Создал поток в нем UDP сокет. Вроде проблема исчезла.
Насколько я понял, проблема именно в созданном DaemonNew потоке и сокете в нем. При отсутствии данных, recvnc возвращает ошибку по timeout. После второй такой ошибки слетает структура PBMQ_free. (См. файл pbm.c)
Ладно вскрытие покажет....
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.