Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Переполнение буфера приема сокета, Переполнение буфера приема сокета 
:(
    Опции темы
al_capone
Дата 4.8.2008, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 14.7.2007

Репутация: нет
Всего: нет



Здравствуйте.
у меня такая проблема. Я читаю видео передающееся по RTP через UDP сокет.Клиент находиться в локальной сети. При чтении я теряю некоторое количество дейтаграмм . Хотя для udp это нормально, но я думаю что дело в переполнении буфера приема сокета (udp_recvspace), потому что
1) снифер который работает у меня на компе ловит почти все дейтаграммы, гораздо больше чем я теряю.
2) при большой компрессии видео я данные почти не теряю.
3) есть прога которая воспроизводит видео с источника без потери данных (исходников нет).
Как можно избежать переполнения? Читаю я в цикле, отдельным потоком, никаких дополнительных действий в этом потоке не произвожу.
Есть некоторые соображения: использовать raw сокеты,или просто увеличить буфер udp_recvspace с помощью функции setsockopt(). Подскажите, что лучше?
PS Ось винда.
PM MAIL   Вверх
Олег2005
Дата 5.8.2008, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 421
Регистрация: 26.5.2005
Где: Рига Латвия

Репутация: 6
Всего: 11



Цитата(al_capone @  4.8.2008,  18:12 Найти цитируемый пост)
увеличить буфер udp_recvspace с помощью функции setsockopt()

Это во всяком случае проще и  провереннее
PM MAIL WWW MSN   Вверх
GrayCardinal
Дата 5.8.2008, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 3
Всего: 58



al_capone, 
Я бы рекомендовал сделать несколько тредов.


--------------------
PM MAIL WWW   Вверх
Олег2005
Дата 5.8.2008, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 421
Регистрация: 26.5.2005
Где: Рига Латвия

Репутация: 6
Всего: 11



Цитата(GrayCardinal @  5.8.2008,  11:25 Найти цитируемый пост)
Я бы рекомендовал сделать несколько тредов. 

С одного сокета читать многопоточно?
PM MAIL WWW MSN   Вверх
al_capone
Дата 7.8.2008, 08:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 14.7.2007

Репутация: нет
Всего: нет



Спасибо, помогло. Сделал буфер в 1 мб, это не слишком много? Рекомендации по размеру буфера будут?
PM MAIL   Вверх
Олег2005
Дата 7.8.2008, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 421
Регистрация: 26.5.2005
Где: Рига Латвия

Репутация: 6
Всего: 11



Цитата(al_capone @  7.8.2008,  07:08 Найти цитируемый пост)
Рекомендации по размеру буфера будут? 

Как правило, макс. знач. около 250 кб - но конечно же может быть больше - если сокетов немного. Все в общем то определяется размером свободной оперативки.
PM MAIL WWW MSN   Вверх
GrayCardinal
Дата 8.8.2008, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 3
Всего: 58



Цитата

С одного сокета читать многопоточно? 

Именно smile


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0465 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.