Ejemplo de Java - Ejemplo de comunicación ServerSocket y Socket

Ejemplo de Java

El siguiente ejemplo demuestra cómo implementar que el cliente envíe un mensaje al servidor, el servidor reciba el mensaje y lo lea, luego lo escriba al cliente, y el cliente reciba la salida.

1. Crear el servidor

  • El servidor crea un ServerSocket para la comunicación
  • El servidor crea un Socket para aceptar la conexión del cliente
  • Crear un flujo de entrada IO para leer los datos enviados por el cliente
  • Crear un flujo de salida IO para enviar mensajes de datos al cliente

Código del servidor:

Archivo Server.java

import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.ServerSocket; import java.net.Socket; public class Server { public static void main(String[] args) { try { ServerSocket ss = new ServerSocket(8888); System.out.println("Iniciando el servidor...."); Socket s = ss.accept(); System.out.println("Cliente:"+s.getInetAddress().getLocalHost()+"Conectado al servidor"); BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream())); //Leyendo los mensajes enviados por el cliente String mess = br.readLine(); System.out.println("Cliente:"+mess); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream())); bw.write(mess+"\n"); bw.flush(); } catch (IOException e) { e.printStackTrace(); } } }

El resultado de ejecutar el código anterior es:

Iniciando servidor....

2. Crear el cliente

  • Crear la comunicación Socket, establecer la IP y el puerto del servidor de comunicación
  • Crear un flujo de salida IO para enviar mensajes de datos al servidor
  • Crear un flujo de entrada IO para leer los mensajes de datos enviados por el servidor

Código del cliente:

Archivo Client.java

import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.Socket; import java.net.UnknownHostException; public class Client { public static void main(String[] args) { try { Socket s = new Socket("127.0.0.1",8888); //Construir IO InputStream is = s.getInputStream(); OutputStream os = s.getOutputStream(); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os)); //Enviar un mensaje al servidor bw.write("Probar la comunicación entre el cliente y el servidor; el servidor recibe el mensaje y lo devuelve al cliente\n"); bw.flush(); //Leer el mensaje devuelto por el servidor BufferedReader br = new BufferedReader(new InputStreamReader(is)); String mess = br.readLine(); System.out.println("Servidor:"+mess); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }

El resultado de ejecutar el código anterior es:

Servidor: Prueba de comunicación entre cliente y servidor; el servidor recibe el mensaje y lo devuelve al cliente.

Ejemplo de Java

Otras extensiones