[問題] Socket連線問題

看板C_and_CPP (C/C++)作者 (嗨啾)時間9年前 (2016/06/15 11:55), 編輯推噓2(205)
留言7則, 5人參與, 最新討論串1/1
各位大大好,想請問一下 假設我有兩台電腦 其中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來傳送嗎? 拜託各位幫幫忙 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.64.91.67 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1465962932.A.8B1.html

06/15 12:50, , 1F
Hole punching
06/15 12:50, 1F

06/15 19:31, , 2F
router設定DMZ, Virtual Server
06/15 19:31, 2F

06/16 00:02, , 3F
上網查DMZ設定 很簡單的
06/16 00:02, 3F

06/16 01:00, , 4F
這時候應該是B用udp主動向A連線,A就可以根據udp的source
06/16 01:00, 4F

06/16 01:00, , 5F
IP把資料傳回給B
06/16 01:00, 5F

06/16 01:02, , 6F
這時候B的router會自動mapping,而不用做port forwarding
06/16 01:02, 6F

06/16 20:28, , 7F
了解了,感謝各位大大的幫忙,讓我學到了很多
06/16 20:28, 7F
文章代碼(AID): #1NOD6qYn (C_and_CPP)
文章代碼(AID): #1NOD6qYn (C_and_CPP)