Servidor
import java.io.BufferedReader import java.io.InputStreamReader import java.io.PrintWriter import java.net.ServerSocket fun main() { val serverSocket = ServerSocket(12345) // Puerto del servidor println("Esperando conexión...") val clientSocket = serverSocket.accept() // Acepta la conexión del cliente println("Cliente conectado: ${clientSocket.inetAddress.hostAddress}") val input = BufferedReader(InputStreamReader(clientSocket.getInputStream())) val output = PrintWriter(clientSocket.getOutputStream(), true) // Leer mensajes del cliente y enviar respuestas while (true) { val receivedMessage = input.readLine() ?: break println("Mensaje del cliente: $receivedMessage") val response = "Mensaje recibido: $receivedMessage" output.println(response) } // Cerrar conexiones input.close() output.close() clientSocket.close() serverSocket.close() }
Cliente
import java.io.BufferedReader import java.io.InputStreamReader import java.io.PrintWriter import java.net.Socket fun main() { val clientSocket = Socket("127.0.0.1", 12345) // Conectar al servidor val input = BufferedReader(InputStreamReader(clientSocket.getInputStream())) val output = PrintWriter(clientSocket.getOutputStream(), true) val reader = BufferedReader(InputStreamReader(System.`in`)) // Enviar mensajes al servidor y recibir respuestas while (true) { print("Mensaje para enviar al servidor: ") val message = reader.readLine() ?: break output.println(message) val receivedMessage = input.readLine() println("Respuesta del servidor: $receivedMessage") } // Cerrar conexiones input.close() output.close() clientSocket.close() }