Java Socket 別的網路IP無法連線
我有兩台電腦 兩支手機 安卓跟iphone 有各自的電信網路
在我主要電腦上 同時執行ServerSocket伺服器端 跟 client客戶端 可以連線
下面演示一下 伺服器端跟客戶端 最基本的語句 也可以執行
────────────────────────────────
一台電腦同時操作伺服器跟客戶
伺服器端
ServerSocket server = new ServerSocket(6000);
Socket socket1 = server.accept();
System.out.println("有人連接到");
---不同Class---
客戶端
try {
Socket client = new Socket("127.0.0.1",6000); //是可以連線到的
}catch (IOException e) {
System.out.println(e);
}
────────────────────────────────────────────
然後在我另一台電腦上執行 +另一支手機網路
客戶端
try {
Socket client = new Socket("192.168.43.105",6000);
}catch (IOException e) {
System.out.println(e);
}
//"192.168.43.105" 是我從網頁上查詢我的IP的位置 我手機是浮動IP 有時候會變更
// 也就是我主要電腦的伺服器IP
這時候就會報錯出現
java.net.ConnectException: Connection timed out: connect
我已經關閉兩台電腦防火牆 依舊無法
請問有大神知道解答嗎? 或是指引哪一個方向給我 謝謝
────────────────────────────────────────────
解答應該已經出來了 我在這裡先小結論 有大大要補充的歡迎哦
網路有分
實體ip、虛擬ip 也稱public ip 跟 private ip
其中 實體ip、又有分浮動IP、固定IP
我的手機是4G行動網路 IPv4的Private IP 固然沒辦法Socket向外連
另外電信4G網路也有開放固定IP申請的服務
行動網路一般都只會給IPv4的Private IP,要架server的話要另外想辦法....
我知道的是中華電信可以申請一個固定IP的SIM卡,當然會有一些書面申請的動作,其他的電信業者沒問過
我用來抓指紋機的出退勤記錄用的,PORT超過1000,沒問題