Los sockets
de red son objetos que se utilizan como elementos terminales en una
comunicacion de datos en un red.
Los sockets
de red de la parte cliente en Android se crean utilizando el lenguaje de
programación Java, se pueden crear con la clase Socket del paquete java.net.
Socket s = new Socket(host, 80);
donde
host es la direccion ip del host destino y 80 es el puerto tcp.
Si
se intenta crear un socket en la clase MainActivity
public class MainActivity extends AppCompatActivity
el programa arroja una
excepcion:
android.os.NetworkOnMainThreadException
que
significa que no se puede realizar conexiones de red en el hilo principal
(Thread), se tiene que crear un hilo adicional.
Android ofrece una clase AsyncTask para realizar actividades asíncronas, esta clase ofrece
un método: doInBackground para ejecutar código en otro hilo.
En el método doInBackground debemos poner el código que crea el socket de red.
class Program extends AsyncTask<Context, Void, String> {
@Override
protected String doInBackground(Context... c) {
try {
Socket s = new Socket(host, 80);
s.close();
} catch (Exception e) {
}
return “”;
}
}
Y en el metodo onCreate de la clase MainActivity llamamos al método execute de la clase
que creamos anteriormente.
@Override
protected void onCreate(Bundle savedInstanceState) {
Program a = new Program();
a.execute(getApplicationContext());
}
No hay comentarios:
Publicar un comentario