Android连接到127.168.1.1,怎么样?

标签 android network-programming

我的 PC 上有一个服务器程序正在运行并等待 Android 客户端。

我在我的 Android 代码中设置了这些:

mHost      = "127.168.1.1"; //or getLocalIpAddress()?
mPort      = 5000;
mSocket    = new Socket(mHost, mPort);

并在 list 中拥有这些权限:

<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?

最佳答案

127.168.1.1 默认在环回范围内,因此连接尝试很可能不会离开您的 Android 设备。尝试将您的服务器放在 192.168.x.x ip 上

http://www.tcpipguide.com/free/t_IPReservedPrivateandLoopbackAddresses-3.htm

关于Android连接到127.168.1.1,怎么样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12786463/

相关文章:

C++ 网络/套接字编程

c - 如何在 node.js 中创建较低级别的网络数据包

c - 如何在C中使用UDP监听数据包?

java - Java 中的 HTTP 编程?

android - 有没有办法覆盖 Chrome 的 “Request Desktop Site” 选项?

java - Android - 在启动时启动服务

android - 已连接的 USB 设备在 Android Studio 上显示为离线

java - 扫描蓝牙设备

java - 如何检测局域网中的特定设备?

java - 在单击按钮时实例化一个对象并使用增量名称作为引用变量? (安卓工作室,java)