首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android TCP 連接超時:模擬器 IP 特殊性與權限缺失排查

     編輯:程式設計綜合問答

錯誤現象

java.net.ConnectException: failed to connect to /10.225.18.190 (port 25000) after 5000ms: isConnected failed: ETIMEDOUT

排查清單

  1. 模擬器網絡隔離:模擬器無法直接訪問宿主機 10.x.x.x IP。
    解決:用 10.0.2.2 映射宿主機 127.0.0.1,或用真機調試
  2. 權限缺失:AndroidManifest.xml 缺 <uses-permission android:name="android.permission.INTERNET"/>
  3. 服務端未監聽:確認 ServerSocket(25000) 綁定 0.0.0.0 而非 127.0.0.1
  4. 防火牆:Windows 防火牆放行 25000 端口入站
  5. 線程阻塞 UI:網絡操作必須在子線程(代碼已用 Thread,正確)

修正後客戶端代碼片段

// 模擬器用 10.0.2.2,真機用電腦局域網 IP
String serverIp = "10.0.2.2"; 
Socket socket = new Socket();
socket.connect(new InetSocketAddress(serverIp, 25000), 5000); // 5s 連接超時

真機同一 WiFi 下通常能直接連通電腦局域網 IP。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved