Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2015, 11:51   #1
Programmer0
Пользователь
 
Регистрация: 05.05.2015
Сообщений: 55
По умолчанию Передавать звук по udp или нет?

Здравствуйте.
Есть задача организовать звуковое оповещение по сети "Многоточка-Точки" (все точки либо выбранные точки). С линейного входа звуковой карты компа-многоточки через радиомодемы звук должен передаваться на выходы звуковых карт компов-точек (все компы, получается, будут в одной сети).
За основу я взял статью из журнала "Программист" Передача звука по сети. Прототип VoIP телефона Уколов А.В. http://www.programmersclub.ru/%D0%9F...5%D0%BB%D0%B5/
Но возник вопрос: звук передается по UDP-протоколу. И вроде как советуют его передавать по UDP. Но UDP-протокол не гарантирует доставку. А если данная система оповещения будет использоваться там, где жизненно важно, чтобы звуковое сообщение достигало адресата, то можно ли использовать UDP ? Если нет, то подскажите, пожалуйста, какие средства использовать.
Programmer0 вне форума Ответить с цитированием
Старый 30.06.2015, 20:14   #2
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

По TCP тоже нормально звук передавать, у вас по локальной сети или через интернет нужно делать? Работу со звуком можно использовать ACMWave там можно сжатие сделать GSM ну также можно и Bass в формате PCM передавать звук, на WinSock если делать то вообще нет задержки в TCP, желательно чтобы канал был не менее 1мб. И сколько ретрансляторов по сети должно быть? А в рации можно активировать функцию VOX, тогда не нужно вам выходы звуковой карты контролировать, в радиомодемах тоже что то должно быть. Эта функция контролирует звук, когда есть звуковой сигнал то рация или радиомодем переходит в режим передачи, если тишина то прием.

Последний раз редактировалось Aliens_wolfs; 30.06.2015 в 20:52.
Aliens_wolfs вне форума Ответить с цитированием
Старый 30.06.2015, 21:00   #3
Programmer0
Пользователь
 
Регистрация: 05.05.2015
Сообщений: 55
По умолчанию

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
TCP тоже норм звук передавать, у вас по локалке или через интернет нужно делать?
Спасибо за ответ. И извините, наверное, нужно было точнее описать задачу.
Ко входу звуковой карты компа-многоточки подключается пульт. На пульте микрофон. Вот звук с этого микрофона нужно передать компам-точкам. То есть речь в режиме реального времени. Меня просветили, что это называется диспетчерской связью, а не системой оповещения. Прошу прощения за ошибку.
Радиомодемы только предоставляют сеть между собой. То есть сеть локальная. При запуске моего ПО сеть уже есть. И ее настройка - не моя задача(пока, во всяком случае...). Просто особенность, что сеть беспроводная.
Вот хотел узнать, какие потери и проблемы могут быть при использовании того или иного протокола, тех или иных средств, и выбрать оптимальные.
Programmer0 вне форума Ответить с цитированием
Старый 30.06.2015, 21:02   #4
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

если в сеть не менее 1мб на точку то TCP нормально справиться даже в PCM формате Для теста сейчас кину пример две проги на WinSoket клиент другая сервер, звук на Bass в настройках звука настрой на нужный вход либо линейный либо микрофон, запусти EXE и в клиенте и в сервере, настрой пока на одном компе когда все нормально можешь пробовать на другом настроив клиента на ip сервера
Вложения
Тип файла: rar Client.rar (371.6 Кб, 77 просмотров)
Тип файла: rar Server.rar (434.7 Кб, 74 просмотров)

Последний раз редактировалось Aliens_wolfs; 30.06.2015 в 21:23.
Aliens_wolfs вне форума Ответить с цитированием
Старый 30.06.2015, 21:21   #5
Programmer0
Пользователь
 
Регистрация: 05.05.2015
Сообщений: 55
По умолчанию

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
запустите по локалке настроив на клиенте ip сервера
Спасибо огромное! Я посмотрю завтра. Сейчас уже нет возможности.
Programmer0 вне форума Ответить с цитированием
Старый 01.07.2015, 00:03   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

поскольку время реальное я бы сильно задумался насчет TCP. он хоть и дает гарантию доставки но все же немного медленнеее чем UDP. в локалке потери UDP маловероятны. но в UDP это можно комперсировать. в TCP нет.
Цитата:
на WinSock если делать то вообще нет задержки в TCP
классы сокеты ничем особым от АПИ не отличаются.
задержка TCP не зависит от того чем посылать. а зависит строго от канала.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 01.07.2015 в 00:06.
Пепел Феникса вне форума Ответить с цитированием
Старый 01.07.2015, 00:13   #7
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

передавать надо от одного другому или бродкастом?
если бродкаст, то UDP, иначе, TCP.
Если IP приёмника известен заранее, то вообще красота - 10 строк кода с использованием готовых классов и вуаля - иди в кассу за премией.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 01.07.2015, 18:28   #8
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

WinSock в нем строишь свою структуру приема передачи со своими параметрами кстати работает быстрее готовых компонентов, но он сложноват лично я использую его и в примерах на нем сделано, но наверное вам лучше использовать компоненты чтобы незаморачиваться. По поводу UDP да он быстрее но в нем есть свои косяки, иногда отрывистые фразы при разговоре, потеря пакетов, и главное ты не знаешь подключен ли получатель клиент в этом протоколе так как соединение он не делает, можно конечно делать проверки пингом от клиента через определенное время, но не сразу узнаешь его присутствие при получении данных. Лично я остановился на TCP, мне на этом протоколе качество звука больше понравилось, даже Mail Agent для звука использует TCP. И на TCP вы будете уверены что канал работает. Если скорость менее 1мб то да возможно вам лучше использовать UDP, для проверки своих модемов попробуйте через Mail Aget пообщаться с кем нибудь, ну или же через мой пример вы проверите TCP канал.

Последний раз редактировалось Aliens_wolfs; 01.07.2015 в 18:42.
Aliens_wolfs вне форума Ответить с цитированием
Старый 02.07.2015, 08:46   #9
Programmer0
Пользователь
 
Регистрация: 05.05.2015
Сообщений: 55
По умолчанию

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
через мой пример вы проверите TCP канал.
Извините, задержался с проверкой. Вчера пробовал ваш пример. Но сам не разобрался еще со своей радиосетью. Модемы пишут, что связь есть. А ваш клиент не всегда конектится. Но это, думаю, зависит от радиоканала. Может, он не стабильный. И там еще мощность настраивается. Вообщем, надо мне еще нужно разобраться с этим.
А так, если конект есть, то да, качество звука хорошее. Только вопрос: если подключать два клиента, они будут одновременно получать звук от сервера? Без запаздывания один относительно другого? (Пока это проверить не получилось.)
Programmer0 вне форума Ответить с цитированием
Старый 03.07.2015, 06:32   #10
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Можно сервер много поточный сделать для работы с кучей клиентов, вы только определитесь по какому протоколу вам работать.
Aliens_wolfs вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
UDP нет обратной связи через шлюз Aliens_wolfs Работа с сетью в Delphi 8 29.10.2013 19:07
Скачивание файлов по UDP (или TCP) jekahm Работа с сетью в Delphi 3 25.03.2011 04:16
Есть звук или нет dimka0986 Мультимедиа в Delphi 11 24.01.2010 00:11
Правильно или нет вот в чём вопрос но ошибок нет... Alexcool Помощь студентам 2 10.01.2010 13:55
Звук есть,а картинки нет LexMan Помощь студентам 2 04.09.2008 19:47