簡體   English   中英

使用Java套接字,連接到不同網絡上的另一設備的正確地址是什么?

[英]With Java sockets, what is the correct address to connect to another device on a different network?

我想使用Java Sockets連接不同網絡上的兩個Android設備。 一台設備將充當服務器,另一台設備充當客戶端。 服務器必須發布哪個地址以便客戶端可以連接到它?

java.net具有InetAddress類,該類具有方法getLocalHost() ,該方法為實例提供本地主機信息(主機名,本地主機地址)。 如果我在機器上運行它,則輸入的地址為192.168.1.101。 服務器設備必須發布該地址才能使客戶端設備連接到它嗎? 我假設沒有,因為它是本地地址。 那么,我在哪里獲得每個設備的正確地址?

您可以使用NetworkInterface枚舉所有網絡接口。 您可能還需要處理連接性更改,例如從3G切換到Wifi等。通常,不能保證您的設備具有全局IP地址,因此除非您僅在自己的網絡上運行它並且您具有有效的IP或已經設置了必要的NAT /端口轉發等。您可能無法連接到它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM