InetAddress.getByName在Android [英] InetAddress.getByName on Android
问题描述
我做了:
的java.net.InetAddress serverAddr;
尝试 {
serverAddr = java.net.InetAddress.getByName(Server.SERVERNAME);
}
赶上(的java.net.UnknownHostException除外){
//System.err.println(错误的服务器名!!!);
HelloWorldActivity.tv.setText(错误的服务器名!!!);
返回;
}
在我的Android应用程序,但它从来没有resoling主机名,它总是抛出一个异常,无论我用什么名字。
但是用在同一个仿真作品的互联网,我已经添加了
<使用-权限ID =android.permission.INTERNET对/>
<使用-权限的Android:名称=android.permission.ACCESS_NETWORK_STATE/>
要AndoidManifest.xml
和这里的服务器类为那些谁认为我没有
公共类服务器
{
公共静态字符串SERVERNAME =monster.idsoftware.com;
公共静态字符串SERVERIP =209.85.129.99;
公共静态INT SERVERPORT = 27950;
公共静态INT PROTOCOL = 68;
}
我已经找到了答案。不管什么原因,你必须使用:
的java.net.InetAddress []×= java.net.InetAddress.getAllByName(Server.SERVERNAME);
HelloWorldActivity.tv.setText(地址:+ X [0] .getHostAddress());
I do a:
java.net.InetAddress serverAddr;
try {
serverAddr = java.net.InetAddress.getByName(Server.SERVERNAME);
}
catch (java.net.UnknownHostException exception) {
//System.err.println ("wrong server name !!!");
HelloWorldActivity.tv.setText("wrong server name !!!");
return;
}
in my android application, but it's never resoling the hostname, it always throws an exception, no matter what name I use.
But using the internet on the same emulator works, and I've added
<use-permission id="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
to AndoidManifest.xml
and here's the server class for those who assume I have none
public class Server
{
public static String SERVERNAME = "monster.idsoftware.com";
public static String SERVERIP = "209.85.129.99";
public static int SERVERPORT = 27950;
public static int PROTOCOL = 68;
}
I've found the answer. For whatever reason, you have to use:
java.net.InetAddress[] x= java.net.InetAddress.getAllByName(Server.SERVERNAME) ;
HelloWorldActivity.tv.setText("Address: "+x[0].getHostAddress());
这篇关于InetAddress.getByName在Android的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!