[問題] new Socket IP帶port怎麼宣告?

看板AndroidDev作者 (皮老闆)時間9年前 (2016/10/13 13:32), 編輯推噓1(1015)
留言16則, 6人參與, 最新討論串1/1
一般建立Socket會使用以下方式 Socket socket = new Socket("192.168.1.2", 3333); 但若設備是由外部進入,則會先經過AP的port再轉到區網ip 舉例: 外部IP:220.74.3.xxx 在AP上設定port:9000轉到192.168.1.2 語法上會寫成 Socket socket = new Socket("220.74.3.xxx:9000", 3333); 則會出現 Unable to resolve host "220.74.3.xxx:9090": No address associated with hostname Socket似乎不接受IP:port的寫法, 該如何解決? -- 小陳:你有聽過樹懶叫的聲音嗎?? 小張:沒有,不過我有看過樹懶趴的時候~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.224.184.184 推 ArSaBuLu:我上次看Discamry 樹懶應該不會叫才對吧... 12/07 19:07 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.54.215 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1476336726.A.E7F.html

10/13 14:14, , 1F
router設定portforwarding
10/13 14:14, 1F

10/13 14:25, , 2F
建構子第2個參數就是port了啊 請查API說明
10/13 14:25, 2F

10/13 14:35, , 3F
NAT設定是port 9000轉到192.168.1.2:3333,對外部來說就只
10/13 14:35, 3F

10/13 14:35, , 4F
有port 9000,沒有3333
10/13 14:35, 4F

10/13 15:08, , 5F
要用外部IP,port也要用對外的啊,除非你的外部port 3333
10/13 15:08, 5F

10/13 15:08, , 6F
是NAT到區網ip的3333
10/13 15:08, 6F

10/13 15:44, , 7F
192.168.1.2是一台VM, 開放3333~4444間可以建立socket連線
10/13 15:44, 7F

10/13 15:46, , 8F
主要是希望能達到 連線->外部ip:9000->轉到192.168.1.2
10/13 15:46, 8F

10/13 15:47, , 9F
->在port 3333~4444間建立連線.
10/13 15:47, 9F

10/13 15:47, , 10F
外部ip只是一個橋樑,但有多台VM,所以使用port轉送到特定VM
10/13 15:47, 10F

10/13 16:01, , 11F
嘗試"220.74.3.xxx", 9000
10/13 16:01, 11F

10/13 21:14, , 12F
你NAT port怎麼設,都跟外面要連上去沒有關係
10/13 21:14, 12F

10/13 21:15, , 13F
對外就是只有9000,你在port帶3333只會變成連到router上的
10/13 21:15, 13F

10/13 21:15, , 14F
3333 port,跟你的內網其他host的port一點關係都沒有
10/13 21:15, 14F

10/13 21:17, , 15F
連線>外部IP:9000就是Socket(外部IP,9000)
10/13 21:17, 15F

10/13 21:17, , 16F
接下來怎麼轉都是NAT設定的,跟連線那個Socket沒關係了
10/13 21:17, 16F
文章代碼(AID): #1N_nnMv_ (AndroidDev)