java - sending - socket en android ejemplo
Conexión de Android con HTTP (2)
En lo que respecta a la configuración, la única opción que debe tener para acceder a Internet desde su aplicación es el permiso de INTERNET, habilitado al agregar la siguiente línea fuera de las etiquetas de la aplicación en su Manifiesto de la aplicación.
<uses-permission android:name="android.permission.INTERNET" />
Entonces el manifiesto seguiría esta construcción general
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.apis">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name="MyApplication"
android:label="@string/application_title"
android:icon="@drawable/my_icon">
[ .. Your Activities go here ]
</application>
</manifest>
¿Alguien puede decirme por qué esto no funciona en el emulador de Android? Desde el navegador tengo acceso y el servidor es interno. Todo lo que puedo pensar es que me falta algo de configuración en mi aplicación para que pueda acceder a la capa de red.
try {
InetAddress server = Inet4Address.getByName("thehost");
//Doesn''t work either
//or InetAddress server2 = Inet4Address.getByAddress(new String("192.168.1.30").getBytes());
if(server.isReachable(5000)){
Log.d(TAG, "Ping!");
}
Socket clientsocket = new Socket(server, 8080);
} catch (UnknownHostException e) {
Log.e(TAG, "Server Not Found");
} catch (IOException e) {
Log.e(TAG, "Couldn''t open socket");
}
Lanza una excepción UnknownHostException
Gracias
Puede que todavía no funcione, debido al tiempo de espera. Ya que necesita permisos de raíz para enviar un paquete ICMP y la implementación de isReachable utilizará la versión TCP lenta de ECHO. Chekcout the javaDoc.