Padre
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.OutputStreamWriter import java.io.BufferedReader import java.io.InputStreamReader fun main() { // Crear el proceso hijo, ruta para IntelliJ val processBuilder = ProcessBuilder("java", "-cp", "/Users/lamac/IdeaProjects/untitled/out/production/untitled", "ChildProcess") val childProcess = processBuilder.start() // Enviar el array de palabras al proceso hijo val wordsArray = arrayOf("Hola", "desde", "el", "proceso", "padre") val message = wordsArray.joinToString(",") val outputStream = OutputStreamWriter(childProcess.outputStream) outputStream.write(message) outputStream.flush() // Asegurarse de que se envíen todos los datos // Leer la respuesta del proceso hijo val inputStream = childProcess.inputStream val reader = BufferedReader(InputStreamReader(inputStream)) val response = reader.readLine() println("Respuesta recibida del proceso hijo: $response") // Finalizar el proceso hijo childProcess.waitFor() println("Proceso hijo finalizado con código de salida: ${childProcess.exitValue()}") } |
Hijo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
import java.io.BufferedReader import java.io.InputStreamReader import java.io.OutputStreamWriter fun main() { // Leer el array enviado por el proceso padre val inputStream = BufferedReader(InputStreamReader(System.`in`)) val inputMessage = inputStream.readLine() // Convertir la cadena a un array de palabras val wordsArray = inputMessage.split(",").toTypedArray() // Mostrar las palabras recibidas println("Array de palabras recibido desde el padre:") wordsArray.forEach { println(it) } // Enviar una respuesta al padre val responseMessage = "El proceso hijo recibió correctamente el array." val outputStream = OutputStreamWriter(System.out) outputStream.write(responseMessage) outputStream.flush() } |