Этот пример иллюстрирует, что использование UDP Отправляет, и UDP Получают блоки, чтобы передать аудиоданные по сети.
Пользовательский дейтаграммный протокол (UDP) является частью комплекта межсетевого протокола (IP). UDP обеспечивает эффективную передачу данных, но не гарантирует надежности, порядка данных или целостности данных. Эти характеристики делают UDP подходящим для передачи потокового аудио и видеоданных, но не для двоичных файлов и аналогичных ситуаций, где потеря данных недопустима.
Можно запустить этот пример полностью в одной системе. Однако, чтобы продемонстрировать UDP в сети, лучше запускать пример на двух сетевых компьютерах. Если второму компьютеру установили программное обеспечение Simulink, можно запустить пример на нем непосредственно. В противном случае используйте Simulink® Coder™, чтобы сгенерировать независимый исполняемый файл, который может работать на втором компьютере.
Во-первых, запустите и dspUDPEcho модель и dspUDPVoip модель на одиночном компьютере. Модели передают аудиоданные друг другу через localhost порт, 127.0.0.1.
dspUDPVoip модель передает аудиоданные к dspUDPEcho. dspUDPEcho модель повторяет данные назад к dspUDPVoip, который выводит сигнал на ваших динамиках.
Если у вас есть микрофон, можно использовать Ручной Переключатель в dspUDPVoip модели, чтобы передать живое аудио вместо синусоиды.
Запустив модели на одиночном компьютере, скопируйте dspUDPEcho во второй компьютер. В обеих моделях, обновление IP-адрес в UDP Отправляют от 127.0.0.1 до IP-адреса противоположного компьютера. Когда вы запускаете обе модели, они передают звуковые сигналы друг другу по сети.
% Open both models and run simultaneously open_system('dspUDPEcho'); open_system('dspUDPVoip'); set_param('dspUDPEcho', 'SimulationCommand', 'Start'); set_param('dspUDPVoip', 'SimulationCommand', 'Start'); % Let the models run for five seconds pause(5); % Stop the simulation set_param('dspUDPVoip', 'SimulationCommand', 'Stop'); set_param('dspUDPEcho', 'SimulationCommand', 'Stop');
Закройте модели
bdclose dspUDPEcho bdclose dspUDPVoip
Если вы не можете передать сигнал по сети, проверяйте следующие элементы:
То, что ваш брандмауэр не блокирует номера портов IP, вы используете. В случае необходимости консультируйтесь со своим системным администратором или документацией по операционной системе.
То, что вы используете свободный номер порта IP. Один не использование другим приложением.
То, что операционная система не ограничивает номер порта привилегированным пользователем. Например, Linux обычно ограничивает порты ниже 1024 для использования пользователем root.
В случае необходимости консультируйтесь со своим системным администратором или операционной системой для получения дополнительной информации.
Postel, J., пользовательский дейтаграммный протокол, https://tools.ietf.org/html/rfc768
Аудио Передатчик и Получатель: dspUDPVoip
Подсистема Эха UDP: dspUDPEcho