Академический Документы
Профессиональный Документы
Культура Документы
(el codigo fuente esta mas abajo...) Los sockets son basicamente formas en las que podemos interconectar 2 (o mas) programas mediante el uso de la internet. En java se utilizan para poder crear conexiones utilizando basicamente una IP/hostname y un puerto para establecer la conexin. Para aprender podemos utilizarla para conenctar 2 programas por medio de Internet. Como funciona? El modelo mas basico de los sockets consta de 2 simples programas, un servidor y un cliente. Basicamente el programa servidor comienza a "escuchar" en un puerto determinado(nosotros lo especificamos), y posteriormente el programa que la hace de "cliente" debe conocer la ip o nombre de dominio/hostname del servidor y el puerto que esta escuchando, al saber esto simplemente solicita establecer una conexin con el servidor. Es aqui cuando el servidor acepta esa conexin y se puede decir que estos programas estan "conectados", de este modo pueden intercambiar informacin. En el siguiente video muestro un programa servidor con sockets, explico mas o menos el codigo, en que consiste y hago una prueba en el cual la conexin es exitosa.
03 import java.io.*; 04 05 06 07 /** 08 09 * 10 11 * @author Jorge V 12 13 */ 14 15 16 17 public class Conex { 18 19 20 21 final int PUERTO=5000; 22 23 ServerSocket sc; 24 25 Socket so; 26 27 DataOutputStream salida; 28 29 String mensajeRecibido; 30 31 //SERVIDOR 32 33 public void initServer() 34 35 {
36 37 BufferedReader entrada; 38 39 40 41 try 42 43 { 44 45 46 47 so=new Socket(); 48 49 System.out.println("Esperando una conexin:"); 50 51 so = sc.accept(); sc = new ServerSocket(PUERTO );/* crea socket servidor que escuchara en puerto 5000*/
13 14 15 System.out.println("Confirmando conexion al cliente...."); 16 17 salida.writeUTF("Conexin exitosa...\n envia un mensaje :D"); 18 19 20 21 //Recepcion de mensaje 22 23 mensajeRecibido = entrada.readLine(); 24 25 System.out.println(mensajeRecibido); 26 27 28 29 salida.writeUTF("Se recibio tu mensaje.\n Terminando conexion..."); 30 31 salida.writeUTF("Gracias por conectarte, adios!"); 32 33 System.out.println("Cerrando conexin..."); 34 35 36 37 sc.close();//Aqui se cierra la conexin con el cliente 38 39 }catch(Exception e ) 40 41 { 42 43 System.out.println("Error: "+e.getMessage()); 44 45 }
46 47 } 48 49 }
25 DataInputStream entrada; 26 27 //Cliente 28 29 public void initClient() /*ejecuta este metodo para correr el cliente */ 30 31 { 32 33 try 34 35 { 36 37 38 39 40 41 //creamos el flujo de datos por el que se enviara un mensaje 42 43 mensaje = new DataOutputStream(sc.getOutputStream()); 44 45 //enviamos el mensaje 46 47 mensaje.writeUTF("hola que tal!!"); 48 49 //cerramos la conexin 50 51 sc.close(); 52 53 }catch(Exception e ) 54 55 { 56 sc = new Socket( HOST , PUERTO ); /*conectar a un servidor en localhost con puerto 5000*/
57 System.out.println("Error: "+e.getMessage()); 58 59 } 60 61 } 62 63 }
Espero que esta pequea introduccin a los sockets haya sido de ayuda, por favor deja tus comentarios.