Socket Programming en Java te permite crear aplicaciones de red para comunicarte entre dispositivos a través de la red. En este tutorial, aprenderás cómo crear aplicaciones de servidor y cliente utilizando sockets en Java.
Creación de un Servidor
Un servidor escucha las conexiones de los clientes y responde a ellas. Sigue estos pasos para crear un servidor básico:
1. Importa las clases necesarias:
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
2. Crea una clase para el servidor:
public class Servidor {
public static void main(String[] args) {
final int PUERTO = 12345;
try (ServerSocket servidor = new ServerSocket(PUERTO)) {
System.out.println("Servidor iniciado. Esperando conexiones...");
while (true) {
Socket cliente = servidor.accept();
System.out.println("Cliente conectado desde: " + cliente.getInetAddress());
// Manejar la conexión con el cliente en un hilo separado
new Thread(new ManejadorCliente(cliente)).start();
}
} catch (IOException e) {
System.err.println("Error en el servidor: " + e.getMessage());
}
}
}
3. Crea una clase para manejar la conexión con cada cliente:
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class ManejadorCliente implements Runnable {
private Socket cliente;
public ManejadorCliente(Socket cliente) {
this.cliente = cliente;
}
public void run() {
try {
InputStream entrada = cliente.getInputStream();
OutputStream salida = cliente.getOutputStream();
// Manejar la comunicación con el cliente
// Por ejemplo, puedes leer datos del cliente y enviar una respuesta
entrada.close();
salida.close();
cliente.close();
} catch (IOException e) {
System.err.println("Error en la comunicación con el cliente: " + e.getMessage());
}
}
}
Creación de un Cliente
Un cliente se conecta al servidor y envía o recibe datos. Aquí te mostramos cómo crear un cliente básico:
1. Importa las clases necesarias:
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
2. Crea una clase para el cliente:
public class Cliente {
public static void main(String[] args) {
final String SERVIDOR = "localhost";
final int PUERTO = 12345;
try (Socket socket = new Socket(SERVIDOR, PUERTO)) {
System.out.println("Conectado al servidor.");
InputStream entrada = socket.getInputStream();
OutputStream salida = socket.getOutputStream();
// Manejar la comunicación con el servidor
// Por ejemplo, puedes enviar datos al servidor y recibir una respuesta
entrada.close();
salida.close();
} catch (IOException e) {
System.err.println("Error en el cliente: " + e.getMessage());
}
}
}
Siguiendo estos pasos, puedes crear aplicaciones de servidor y cliente utilizando sockets en Java. Asegúrate de manejar las excepciones y cerrar adecuadamente las conexiones para mantener una aplicación robusta. ¡Practica y experimenta con diferentes operaciones de red para mejorar tus habilidades en Socket Programming en Java!