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 |
import java.io.BufferedOutputStream import java.io.FileOutputStream import java.io.InputStream import java.net.ServerSocket fun main() { val port = 12345 // Puerto en el que el servidor va a escuchar val serverSocket = ServerSocket(port) println("Servidor iniciado. Esperando conexión del cliente...") val socket = serverSocket.accept() println("Cliente conectado. Recibiendo imagen...") val inputStream: InputStream = socket.getInputStream() val fileOutputStream = FileOutputStream("/Users/lamac/IdeaProjects/untitled/2.png") // Ruta donde se guardará la imagen recibida val bufferedOutputStream = BufferedOutputStream(fileOutputStream) val buffer = ByteArray(4096) var bytesRead: Int while (inputStream.read(buffer).also { bytesRead = it } != -1) { bufferedOutputStream.write(buffer, 0, bytesRead) } bufferedOutputStream.flush() bufferedOutputStream.close() socket.close() serverSocket.close() println("Imagen recibida y guardada correctamente") } |
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 |
import java.io.BufferedInputStream import java.io.File import java.io.FileInputStream import java.io.OutputStream import java.net.Socket fun main() { val host = "localhost" // Cambiar por la dirección IP o el nombre de host del servidor val port = 12345 // Puerto en el que el servidor está escuchando val file = File("/Users/lamac/IdeaProjects/untitled/Screenshot 2023-07-06 at 21.18.36.png") // Ruta de la imagen a enviar val socket = Socket(host, port) val outputStream: OutputStream = socket.getOutputStream() val fileInputStream = FileInputStream(file) val bufferedInputStream = BufferedInputStream(fileInputStream) val buffer = ByteArray(4096) var bytesRead: Int while (bufferedInputStream.read(buffer).also { bytesRead = it } != -1) { outputStream.write(buffer, 0, bytesRead) } outputStream.flush() bufferedInputStream.close() socket.close() println("Imagen enviada correctamente") } |
