Sockets TCP en Kotlin

uso de sockets TCP en Kotlin

Servidor.kt

object Servidor {
    @kotlin.jvm.JvmStatic
    fun main(args: Array<String>) {
        lateinit var servidor: ServerSocket
        lateinit var socket: Socket
        lateinit var input: DataInputStream
        lateinit var out: DataOutputStream

        //puerto de nuestro servidor
        val PUERTO = 5000

        try {
            //Creamos el socket del servidor
            servidor = ServerSocket(PUERTO)
            println("Servidor iniciado")

            //Siempre estara escuchando peticiones
            while (true) {
                //Espero a que un cliente se conecte

                socket = servidor.accept()

                println("Cliente conectado")
                input = DataInputStream(socket.getInputStream())
                out = DataOutputStream(socket.getOutputStream())

                //Leo el mensaje que me envia
                val mensaje = input.readUTF()

                println(mensaje)

                //Le envio un mensaje
                out.writeUTF("¡Hola mundo desde el servidor!")

                //Cierro el socket
                socket.close()
                println("Cliente desconectado")
            }
        } catch (ex: IOException) {
            Logger.getLogger(Servidor::class.java.getName()).log(Level.SEVERE, null, ex)
        }
    }
}

Cliente.kt

object Cliente {
    @JvmStatic
    fun main(args: Array<String>) {
        //Host del servidor
        val HOST = "127.0.0.1"
        //Puerto del servidor
        val PUERTO = 5000

        lateinit var socket: Socket
        lateinit var input: DataInputStream
        lateinit var out: DataOutputStream
        lateinit var mensaje: String

        try {
            //Creo el socket para conectarme con el cliente
            socket = Socket(HOST, PUERTO)

            input = DataInputStream(socket.getInputStream())
            out = DataOutputStream(socket.getOutputStream())

            //Envio un mensaje al cliente
            out.writeUTF("¡Hola mundo desde el cliente!")

            //Recibo el mensaje del servidor
            mensaje = input.readUTF()

            println(mensaje)

            socket.close()
        } catch (ex: IOException) {
            Logger.getLogger(Cliente::class.java.getName()).log(Level.SEVERE, null, ex)
        }
    }
}

Código de Sockets_TCP_Kotlin (Hecho con IntelliJ Idea 2025.3.1.1)

Deja una respuesta