реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> ndk sendto() error
owl
сообщение Dec 11 2007, 08:35
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 90
Регистрация: 7-08-06
Из: Смоленск
Пользователь №: 19 370



Кто-нибудь сталкивался со следующей проблемой:
Приложение передает данные по UDP, скорость передачи примерно 1Мбайт/сек. После некоторого времени sendto() возвращает -1. fdError() возвращает ENOBUFS.
Т.е, насколько я понимаю, стек не может выделить память для создаваемого пакета данных.
Стек протоколов версии 1.92. Проц Tms320DM6437.
Go to the top of the page
 
+Quote Post
Vasiliy Rufitski...
сообщение Dec 12 2007, 15:13
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 18
Регистрация: 19-10-07
Пользователь №: 31 519



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


Мой проц Tms320DM642
У меня такая проблема возникала при использовании демона типа "UDP-echo". Если клиент посылал запросы очень часто , то sendto начинал возвращать -1.
Лечил этот трабл созданием отдельной "Вещающей" задачи и "слушающего" демона. После этого баг исчез.
Go to the top of the page
 
+Quote Post
owl
сообщение Dec 13 2007, 08:30
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 90
Регистрация: 7-08-06
Из: Смоленск
Пользователь №: 19 370



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

Попробовал обойтись без DaemonNew(); Создал поток в нем UDP сокет. Вроде проблема исчезла.
Насколько я понял, проблема именно в созданном DaemonNew потоке и сокете в нем. При отсутствии данных, recvnc возвращает ошибку по timeout. После второй такой ошибки слетает структура PBMQ_free. (См. файл pbm.c)
Ладно вскрытие покажет....
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 8th July 2025 - 21:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01354 секунд с 7
ELECTRONIX ©2004-2016