[問題] Socket連線問題

作者: peilin0407 (嗨啾)   2016-06-15 11:55:29
各位大大好,想請問一下
假設我有兩台電腦
其中A電腦是固定IP為:101.1.1.1
然後在別的地方有一台網路分享器的固定IP假設是:202.2.2.2
接著B電腦透過此網路分享器得到的虛擬IP是:192.168.3.3
透過TcpSocket的機制,A電腦如果架TcpServer
B電腦可以透過A的IP連到對方那裡
而A電腦就可以取得B電腦的TcpSocket,雙方確實可以互相溝通
但因為我實作的程式中,A電腦想傳一些像是聲音、視訊之類的到B電腦
我想到的就是用Udp來傳送這些資料
所以我在B電腦開啟了一個UdpSocket並監聽5000的Port
但問題就卡在這@@
我在A電腦用UdpSocket傳送資料的時候,
並沒辦法傳送該資料到192.168.1.1:5000,畢竟這是虛擬IP
但我如果傳送到101.2.2.2:5000,對方也收不到
(無法設定對方分享器的Mapping)
想請問這樣的狀況該怎麼辦@@
還是說這類情況的話,聲音、視訊之類的東西只能透過Tcp來傳送嗎?
拜託各位幫幫忙
謝謝
作者: fatrabitree (胖兔子)   2016-06-15 12:50:00
Hole punching
作者: sosokill (vieux)   2016-06-15 19:31:00
router設定DMZ, Virtual Server
作者: laladeer (laladeer)   2016-06-16 00:02:00
上網查DMZ設定 很簡單的
作者: l321122 (RTlnK)   2016-06-16 01:00:00
這時候應該是B用udp主動向A連線,A就可以根據udp的sourceIP把資料傳回給B這時候B的router會自動mapping,而不用做port forwarding
作者: peilin0407 (嗨啾)   2016-06-16 20:28:00
了解了,感謝各位大大的幫忙,讓我學到了很多

Links booklink

Contact Us: admin [ a t ] ucptt.com