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 |
import java.net.ServerSocket import java.io.BufferedReader import java.io.InputStreamReader fun main() { val serverSocket = ServerSocket(12345) println("Servidor esperando conexiones en el puerto 12345...") val clienteSocket = serverSocket.accept() val comandoRecibido = clienteSocket.getInputStream().bufferedReader().readLine() println("Comando recibido: $comandoRecibido") ejecutarComando(comandoRecibido) clienteSocket.close() serverSocket.close() } private fun ejecutarComando(comando: String) { try { val proceso = Runtime.getRuntime().exec(comando) val lector = BufferedReader(InputStreamReader(proceso.inputStream)) var linea: String? while (lector.readLine().also { linea = it } != null) { println(linea) } val exitCode = proceso.waitFor() println("Código de salida del comando: $exitCode") } catch (e: Exception) { e.printStackTrace() } } |
Cliente
1 2 3 4 5 6 7 8 9 10 11 12 |
import java.net.Socket import java.io.OutputStream fun main() { val palabraAEnviar = "Hola" val clienteSocket = Socket("localhost", 12345) clienteSocket.getOutputStream().write("$palabraAEnviar\n".toByteArray()) println("Palabra enviada al servidor: $palabraAEnviar") clienteSocket.close() } |