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 40 41 42 |
import java.io.BufferedReader import java.io.InputStreamReader import java.io.PrintWriter import java.net.ServerSocket import java.net.Socket class TCPServer { fun startServer() { try { val serverSocket = ServerSocket(6000) println("Servidor TCP iniciado. Esperando conexiones...") val clientSocket = serverSocket.accept() println("Cliente conectado desde: ${clientSocket.inetAddress.hostAddress}") val reader = BufferedReader(InputStreamReader(clientSocket.inputStream)) val writer = PrintWriter(clientSocket.outputStream, true) var message: String? do { message = reader.readLine() println("Mensaje recibido del cliente: $message") val response = "Respuesta del servidor: El servidor ha recibido el mensaje." writer.println(response) println("Respuesta enviada al cliente: $response") } while (message != null && message != "fin") reader.close() writer.close() clientSocket.close() serverSocket.close() } catch (e: Exception) { e.printStackTrace() } } } fun main() { val server = TCPServer() server.startServer() } |
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 |
import java.io.BufferedReader import java.io.InputStreamReader import java.io.PrintWriter import java.net.Socket class TCPClient { fun startClient() { try { val clientSocket = Socket("localhost", 6000) println("Cliente TCP conectado al servidor.") val reader = BufferedReader(InputStreamReader(clientSocket.inputStream)) val writer = PrintWriter(clientSocket.outputStream, true) var message: String? do { print("Ingrese un mensaje ('fin' para salir): ") message = readLine() writer.println(message) val response = reader.readLine() println("Respuesta del servidor: $response") } while (message != null && message != "fin") reader.close() writer.close() clientSocket.close() } catch (e: Exception) { e.printStackTrace() } } } fun main() { val client = TCPClient() client.startClient() } |