martes, 20 de junio de 2017

Como crear un socket de red en Android


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