InetAddress.getByName on Android

android, java, sockets

Solution

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());

Problem

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 ``` <uses-permission android:name="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; } ```

Original source