InetAddress.getByName在Android [英] InetAddress.getByName on Android

查看:239
本文介绍了InetAddress.getByName在Android的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我做了:

 的java.net.InetAddress serverAddr;
尝试 {
    serverAddr = java.net.InetAddress.getByName(Server.SERVERNAME);
}
赶上(的java.net.UnknownHostException除外){
    //System.err.println(错误的服务器名!!!);
    HelloWorldActivity.tv.setText(错误的服务器名!!!);
    返回;
}
 

在我的Andr​​oid应用程序,但它从来没有resoling主机名,它总是抛出一个异常,无论我用什么名字。


但是用在同一个仿真作品的互联网,我已经添加了

 <使用-权限ID =android.permission.INTERNET对/>
<使用-权限的Andr​​oid:名称=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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆