Socket
Un socket es un mecanismo que permite la conexión entre distintos procesos que habitualmente utilizamos para establecer comunicaciones entre distintas máquinas que estén conectadas a través de la red.
(+ info)
Código del Socket
El código (hecho en Java) está dividido en dos clases, la clase Cliente que enviará la petición y recibirá la respuesta del servidor, y la clase Servidor que será el encargado de recibir la petición y enviar la respuesta al cliente.
Clase Cliente
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | import java.io.*; import java.net.*; public class Cliente_uoc { public static void main(String args[]) { Socket cliente = null; DataInputStream entrada = null; DataOutputStream salida = null; String ipServidor ="127.0.0.1"; //nos conectamos al localhost a traves de esta dirección IP //if (cliente != null && salida != null && entrada!= null) { try { cliente = new Socket(ipServidor, 2019); //asignamos este numero de puerto entrada = new DataInputStream(cliente.getInputStream()); // será lo que enviaremos al servidor salida = new DataOutputStream(cliente.getOutputStream()); // será lo que nos devuelva el servidor } catch (UnknownHostException excepcion) { System.err.println("El servidor no está levantado"); } catch (Exception e) { System.err.println("Error: " + e ); } try { String linea_recibida; salida.writeBytes("Frase que envio al servidor\n"); linea_recibida = entrada.readLine(); System.out.println("SERVIDOR DICE: " + linea_recibida); salida.close(); entrada.close(); cliente.close(); } catch (UnknownHostException excepcion) { System.err.println("No encuentro el servidor en la dirección" + ipServidor); } catch (IOException excepcion) { System.err.println("Error de entrada/salida"); } catch (Exception e) { System.err.println("Error: " + e ); } } } |
Clase Servidor
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | import java.io.*; import java.net.*; public class Servidor_uoc { public static void main(String args[]) { ServerSocket mi_servicio = null; String linea_recibida; DataInputStream entrada; PrintStream salida; Socket socket_conectado = null; try { mi_servicio = new ServerSocket(2019); } catch (IOException excepcion) { System.out.println(excepcion); } try { socket_conectado = mi_servicio.accept(); entrada = new DataInputStream(socket_conectado.getInputStream()); salida = new PrintStream(socket_conectado.getOutputStream()); linea_recibida = entrada.readLine(); salida.println("Te reenvio lo que he recibido:" + linea_recibida ); salida.close(); entrada.close(); socket_conectado.close(); } catch (IOException excepcion) { System.out.println(excepcion); }} } |
*** El servidor debe estar corriendo antes de hacer la llamada desde el cliente