HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[Delphi, Winsock]Теряются UDP пакеты при Broadcast'е. Почему?
  #1  
Старый 14.05.2010, 08:26
Proger10
Познающий
Регистрация: 19.12.2008
Сообщений: 78
С нами: 9154741

Репутация: 13
По умолчанию [Delphi, Winsock]Теряются UDP пакеты при Broadcast'е. Почему?

В программе с помощью winsock шлю по udp звуковые данные. Если указать IP своего или другого компа, то данные доходят в целости и сохранности. Если указать широковещательный адрес (у меня это 192.168.1.255), то до компа, скоторого отпраляли, данные доходят нормально, а до другого отрывками - отправлееное теряется независимо от способа соединения компов, хоть проводной сеткой (хотя потерь чуть-чуть меньше), хоть беспроводной. В чем может быть причина? Или так и должно быть?
 
Ответить с цитированием

  #2  
Старый 14.05.2010, 09:08
telega
Новичок
Регистрация: 29.08.2009
Сообщений: 20
С нами: 8789583

Репутация: 0
По умолчанию

ну это же Udp ...
 
Ответить с цитированием

  #3  
Старый 14.05.2010, 09:45
Proger10
Познающий
Регистрация: 19.12.2008
Сообщений: 78
С нами: 9154741

Репутация: 13
По умолчанию

Это-то понятно! Но ведь если указать НЕ широковещательный адрес, а чей-нибудь ip, то всё доходит нормально!
 
Ответить с цитированием

  #4  
Старый 14.05.2010, 15:35
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами: 10097606

Репутация: 3349


По умолчанию

Ну так тут пакеты идет строго всем и приходят в последовательности в которой ты их постал. Почти в такой. А тут получается что пакеты в сеть идет, и если это свитч, то ему приходится напрягаться и всем рассылать по отдельности. Вот могут и быть потери. Хотя мне кажется там не потери, а перемешка скорее всего.
Попробуй перед отправкой пакета, чтобы первые 4 байта были - порядковым номером пакета и отсылай их. А на приемной стороне отризай их и сохраняй номера и посмотришь тогда точнее какие именно пакеты теряются или мешаются
 
Ответить с цитированием

  #5  
Старый 14.05.2010, 18:13
Proger10
Познающий
Регистрация: 19.12.2008
Сообщений: 78
С нами: 9154741

Репутация: 13
По умолчанию

slesh, спасибо! Отличная идея!

Я теперь вообще ничего не понимаю! Всё работает! Хотя я ничего не исправлял! Магия...
Кстати! Во время проверки обнаружились странные пакеты. Их размер, определяетмый функцией recvfrom -1 (это не тире один, это МИНУС ОДИН). Если их игнорировать на качество звука никак не меняется.
 
Ответить с цитированием

  #6  
Старый 14.05.2010, 18:21
Proger10
Познающий
Регистрация: 19.12.2008
Сообщений: 78
С нами: 9154741

Репутация: 13
По умолчанию

Странно! Убрал из программы весь код связанный с проверкой - опять звук прерывистый! Вместо "Привет" "П р е" (ну вобщем как-то так)
 
Ответить с цитированием

  #7  
Старый 14.05.2010, 18:25
Proger10
Познающий
Регистрация: 19.12.2008
Сообщений: 78
С нами: 9154741

Репутация: 13
По умолчанию

Оказывается если поставить Sleep(10); в процидкре приёма, то всё звучит нормально, но это не дело - задержки!
Странно! Когда использовал NMUDP, то всё было в порядке, хотя алгоритмы такие же. Вроде.

Последний раз редактировалось Proger10; 14.05.2010 в 18:48..
 
Ответить с цитированием

  #8  
Старый 14.05.2010, 18:51
Proger10
Познающий
Регистрация: 19.12.2008
Сообщений: 78
С нами: 9154741

Репутация: 13
По умолчанию

А есть способ кодирование аудио, сжимающий лучше, чем mp3??
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[статья] Винты. Беды. Cthulchu "Железо" 7 13.05.2009 15:41
химия своими руками silveran Болталка 43 11.01.2006 22:05



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.