![無法在互聯網上傳輸 UDP](https://rvso.com/image/1607102/%E7%84%A1%E6%B3%95%E5%9C%A8%E4%BA%92%E8%81%AF%E7%B6%B2%E4%B8%8A%E5%82%B3%E8%BC%B8%20UDP.png)
我在 Windows 10 上使用 VLC 媒體播放器。
當我在連接埠 9000 上使用 HTTP 使用檔案和串流時,它運作得很好。我在路由器上為 Windows 10 筆記型電腦的 IP 位址連接埠 9000 的兩個連接埠設定了連接埠轉送。
本地IP:192.168.0.7
因此,當我在同一台 WINDOWS 筆記型電腦上使用 Http://<"ISP public IP">>:9000 時,它運作得很好。
ISP 公共 IP : 76.XXX.XXX.XXX
二)
現在,我嘗試使用相同的 UDP 串流
我選擇了文件,然後選擇了 UDP 。然後我提供了IP位址224.0.0.0連接埠:9000
然後無需轉碼,只需選擇 All Elemental 串流。
試試在同一台電腦上玩
UDP://[電子郵件受保護]:9000
它在本機上以 udp://224.0.0.0:9000 的形式播放。
但當我使用以下 udp://<<"ISP Public IP">>@224.0.0.0:9000 沒有任何效果....:(
請幫忙,..我該怎麼做才能播放來自網路的 UDP 串流。
根據 Ed 的建議再次嘗試..仍然無法暴露 UDP。
AS 每個網際網路連接埠 .. 它顯示 ISP 為連接埠 9000 開啟了。
FIREWALL 規則對 TCP 和 UDP 均開放。我在路由器中選擇了“BOTH”,同時打開防火牆連接埠。
它可以在本地透過 UDP 播放
答案1
您不只是嘗試使用 UDP 流(這很可能完美工作),您正在嘗試使用 UDP群播串流。這是一個非常重要的區別。
群播是一種方法,透過該方法單一寄件人可以單向交談多個接收器。它是透過使用互聯網上通常不使用的特殊 IP 位址(224.0.0.0 到 239.255.255.255)啟動的。
在扁平 LAN 中,這不會造成太多問題:發送的資料包將透過交換器到達所有連接的 PC,然後 PC 可以選擇它們想要的資料包並從中組合流。
在具有路由器的網路中,這種幼稚的方法不再有效:從物理上來說,不可能將所有發送方的所有資料包傳輸到所有可能的接收方,以便他們可以選擇他們想要的資料包。
這就是為什麼大多數多播流量不會跨越路由器邊界的原因- 只有接收者和發送者之間的所有路由器都有一種機制來就傳輸哪些多播資料包達成一致(再次強調:傳輸所有資料包是不可行的),它們才能被傳遞。最常見的機制是IGMP
(但也存在其他機制)。我不知道有任何 ISP 為其住宅或中小企業客戶提供 IGMP。
如果沒有這樣的機制,此類多播流的資料包將根本不會到達您的網路連接,因此您的家庭路由器中的任何設定都無法使它們可見。
如果您控制傳送者,您可以將其設定為使用單播(即「正常」UDP)到您的網路連線的公共 IP 位址:然後您的連接埠轉送將使用 VNC 流指示符udp://@:9000
。
如果您不控制發送者,則無法使用這種串流傳輸。
答案2
您使用的位址 224.0.0.0 是本地位址。看這張桌子對於多播位址。
像對連接埠 9000 tcp 所做的那樣設定連接埠轉送(但這次是針對 udp)。然後使用公共IP存取udp流,而不是組播IP。
答案3
交換 IP 位址。 "UDP://[本機ip]@[公網ip]:[連接埠]"
它正在搜尋“私人IP位置@公共IP位置:公共連接埠”
你形成論點的方式是尋找一個不存在的IP來檢索資訊。