![Невозможно транслировать UDP в Интернете](https://rvso.com/image/1607102/%D0%9D%D0%B5%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%20%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20UDP%20%D0%B2%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82%D0%B5.png)
Я использую медиаплеер VLC на Windows 10.
Когда я использовал файл и поток с использованием HTTP на порту 9000, все работало отлично. У меня на маршрутизаторе настроена переадресация портов для обоих портов для IP-адреса моего ноутбука с Windows 10 на порту 9000.
ЛОКАЛЬНЫЙ IP: 192.168.0.7
Поэтому, когда я использовал Http://<"ISP public IP">>:9000 на том же НОУТБУКЕ WINDOWS, все работало отлично.
Публичный IP-адрес интернет-провайдера: 76.XXX.XXX.XXX
Б)
ТЕПЕРЬ я попробовал использовать то же самое для потоковой передачи UDP
Я выбрал файл, а затем выбрал UDP. Затем я указал IP-адрес 224.0.0.0 PORT: 9000
Затем без транскодирования и просто выбрал поток All Elemental.
Пытаюсь играть на том же компьютере
udp://[email protected]:9000
На локальном компьютере он воспроизводится как udp://224.0.0.0:9000.
Но когда я использую следующее udp://<<"ISP Public IP">>@224.0.0.0:9000 Ничего не работает .... :(
ПОЖАЛУЙСТА, ПОМОГИТЕ, что мне сделать, чтобы можно было воспроизводить UDP-поток из интернета.
Попробовал еще раз, следуя совету Эда. Все еще не удалось раскрыть UDP.
Согласно интернет-порту... Он отображается как открытый интернет-провайдером для порта 9000.
Правило FIREWALL открыто для TCP и UDP. Я выбрал "BOTH" в маршрутизаторе при открытии порта для FIREWALL.
Работает локально для воспроизведения по UDP
решение1
Вы не пытаетесь просто использовать потоковую передачу UDP (которая, скорее всего, будет работать идеально), вы пытаетесь использовать UDPмногоадресная передачапотоковое вещание. Это очень важное отличие.
Многоадресная рассылка — это метод, с помощью которогоодин отправительможет говорить односторонненесколько приемников. Он инициируется с использованием специальных IP-адресов (от 224.0.0.0 до 239.255.255.255), которые обычно не используются в Интернете.
В плоской локальной сети это не создает особых проблем: отправленные пакеты будут поступать на все подключенные ПК через коммутатор, а затем ПК смогут выбрать нужные им пакеты и собрать из них поток.
В сети с маршрутизаторами этот наивный подход больше не работает: физически невозможно передать все пакеты от всех отправителей всем возможным получателям, чтобы они могли выбрать те, которые им нужны.
Вот почему большая часть многоадресного трафика не пересекает границы маршрутизаторов — только если все маршрутизаторы между получателем и отправителем имеют механизм согласования того, какие многоадресные пакеты транспортировать (опять же: транспортировка всех невозможна), они могут быть доставлены. Наиболее распространенный механизм IGMP
(но существуют и другие). Я не знаю ни одного интернет-провайдера, предоставляющего IGMP для своих частных клиентов или клиентов малого и среднего бизнеса.
При отсутствии такого механизма пакеты многоадресного потока просто не будут поступать на ваше интернет-соединение, поэтому никакие настройки вашего домашнего маршрутизатора не смогут сделать их видимыми.
Если вы контролируете отправителя, вы можете настроить его на использование одноадресной передачи (т. е. «обычного» UDP) на публичный IP-адрес вашего интернет-подключения: Тогда ваши переадресации портов будут работать с обозначением потока VNC udp://@:9000
.
Если вы не контролируете отправителя, вы не сможете использовать этот вид потоковой передачи.
решение2
Используемый вами адрес 224.0.0.0 является локальным. См.этот столдля многоадресных адресов.
Настройте переадресацию портов, как вы это делали для порта 9000 tcp (но на этот раз для udp). А затем получите доступ к потоку udp с публичным IP, а не с многоадресным.
решение3
Поменяйте местами IP-адреса. "UDP://[локальный IP]@[публичный IP]:[порт]"
он ищет "частные IP-адреса @ публичные IP-адреса:публичный порт"
судя по тому, как вы сформулировали свой аргумент, он пытается получить информацию с несуществующего IP.