0
我想用java套接字連接不同網絡上的兩個Android設備。一臺設備將充當服務器,另一臺充當客戶端。服務器必須發佈哪個地址才能讓客戶端連接到它?使用Java套接字,連接到另一個網絡上的其他設備的正確地址是什麼?
java.net
具有InetAddress
類,方法getLocalHost()
提供了一個帶有本地主機信息(主機名,本地主機地址)的實例。如果我在我的機器上運行它,我給出的地址是192.168.1.101。這是服務器設備必須發佈的地址才能讓客戶端設備連接到它嗎?我假設沒有,因爲它是一個本地地址。那麼,我在哪裏可以得到每個設備的正確地址?
我試過這種方式,它給出了與InetAddress相同的地址。 –
在這種情況下,您的設備已連接到某個使用NAT的WiFi路由器。您必須爲設備提供全球IP或設置路由器以轉發您需要連接到Android設備的端口。然後,您將使用路由器的(全局)地址連接到您的Android服務器。總而言之,這不是一個好主意,除非是用於測試/實驗。 –