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 31 32 33 34 35 36 37 38 39 |
import java.io.BufferedReader import java.io.InputStreamReader import java.io.OutputStreamWriter import java.io.BufferedWriter import java.net.ServerSocket fun main() { val server = ServerSocket(12345) println("Padre esperando conexiones en el puerto 12345...") while (true) { val clienteSocket = server.accept() println("Cliente conectado desde: ${clienteSocket.inetAddress.hostAddress}") val inputStream = BufferedReader(InputStreamReader(clienteSocket.getInputStream())) val mensajeRecibido = inputStream.readLine() println("Mensaje recibido del cliente: $mensajeRecibido") val mensajes = obtenerMensajes() val outputStream = BufferedWriter(OutputStreamWriter(clienteSocket.getOutputStream())) mensajes.forEach { mensaje -> // Simular procesamiento por un tiempo Thread.sleep(2000) outputStream.write("$mensaje\n") outputStream.flush() println("Mensaje enviado al cliente: $mensaje") } clienteSocket.close() } } fun obtenerMensajes(): List<String> { // Mensajes a enviar return listOf("Respuesta 1", "Respuesta 2", "Respuesta 3") } |
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 |
import java.io.BufferedReader import java.io.InputStreamReader import java.io.OutputStreamWriter import java.io.BufferedWriter import java.net.Socket fun main() { val clienteSocket = Socket("localhost", 12346) val inputStream = BufferedReader(InputStreamReader(clienteSocket.getInputStream())) val outputStream = BufferedWriter(OutputStreamWriter(clienteSocket.getOutputStream())) val mensaje = "Información desde el hijo" outputStream.write("$mensaje\n") outputStream.flush() println("Mensaje enviado al servidor: $mensaje") // Leer y mostrar las respuestas del servidor var respuesta: String? do { respuesta = inputStream.readLine() if (respuesta != null) { println("Respuesta recibida del servidor: $respuesta") } } while (respuesta != null) clienteSocket.close() } |