我正在尝试从 Android 应用程序连接到 Internet 上的聊天服务器,所以首先我测试我是否从 AsyncTask 与服务器联系:
@Override
protected Void doInBackground(SocketAndEditText... soEd) {
try{
InetAddress address1 = InetAddress.getByName("130.237.161.23");
boolean reachable = address1.isReachable(4456);
//...
} catch (Exception e) {
//...
}
}
当我运行上面的代码时,变量reachable
获得了值false
,但是当我运行与简单的 Java 控制台应用程序相同的代码时,我得到true
:
import java.net.InetAddress;
public class Test {
public static void main(String[] args) {
try{
InetAddress address1 = InetAddress.getByName("130.237.161.23");
boolean reachable = address1.isReachable(4456);
System.out.println(reachable);
} catch (Exception e) {
//...
}
}
}
在我的清单文件中,我有<uses-permission android:name="android.permission.INTERNET" />
为什么它不能在 Android 中运行,而是作为 Java 应用程序运行?