我的 PC 上有一个服务器程序,它正在运行并等待 Android 客户端。
我在我的 Android 代码中设置了这些:
mHost = "127.168.1.1"; //or getLocalIpAddress()?
mPort = 5000;
mSocket = new Socket(mHost, mPort);
并在清单中拥有这些权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
当我尝试连接到我的 PC 时,我得到了这个 logcat 输出:
10-08 19:18:40.970: E/ex closeInputOutput(8735): java.lang.NullPointerException
10-08 19:18:40.970: E/doInBackground Exception(8735): java.net.ConnectException: failed to connect to /127.168.1.1 (port 5000): connect failed: ECONNREFUSED (Connection refused)
我有一个路由器,如何将我的 PC 连接到 127.168.1.1:5000?
编辑:
public static final String getLocalIpAddress() {
try {
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
InetAddress inetAddress = enumIpAddr.nextElement();
String ip4 = inetAddress.getHostAddress().toString();
if (!inetAddress.isLoopbackAddress() && InetAddressUtils.isIPv4Address(ip4)) {
Log.d(TAG, "getLocalIpAddress(): " + ip4);
return ip4;
}
}
}
}
catch (Exception e) {
Log.e(TAG, "ServerUtils: getLocalIpAddress(): " + e.getMessage());
}
return null;
}
这是我的新代码,这个返回 192.168.1.104,它不起作用。使用我的 ipconfig 我得到 192.168.1.102 (这是正确的。)那么在最后一个代码中出了什么问题?如何获得正确的本地 IP?