Contenidos
Programación multiproceso:
Teoría de procesos
Conceptos
- Función básica https://www.jesusninoc.com/07/05/crear-una-funcion-de-saludo-en-kotlin/
- Función main() https://www.jesusninoc.com/07/05/pasar-parametros-a-la-funcion-main-en-kotlin/
- Conceptos generales https://www.jesusninoc.com/07/02/conceptos-importantes-en-kotlin-relacionados-con-procesos-hilos-red-y-seguridad-son/
- Repaso de conceptos para manejar las shells (instalar Ubuntu Server)
- SSH, conexión de red que permita acceder
- Rutas
- Path y Classpath https://docs.oracle.com/javase/tutorial/essential/environment/paths.html
- Pasar parámetros en scripts (PowerShell) https://www.jesusninoc.com/02/17/pasar-parametros-en-scripts-de-powershell/
- Pasar parámetros en scripts (Bash) https://www.jesusninoc.com/02/17/pasar-parametros-en-scripts-de-bash/
- Procesos en Linux https://github.com/jesusninoc/ClasesPSP/blob/master/2022-10-03.md#procesos-en-linux-1
- Ejecutar dos comandos
- Almacenar la ejecución de un comando
- Multiproceso
- BCP
- Process status
- Estados de un proceso
- System
- Funciones
- Creación y ejecución de procesos
- Padre crear hijo
- Comunicación entre procesos: para capturar y leer la salida generada por el comando ping, debemos acceder al flujo de entrada (inputStream) del proceso. Esto puede parecer confuso, pero en este caso, el flujo de entrada (inputStream) del proceso se utiliza para leer los datos que provienen de la salida generada por el comando.
- Descriptores https://www.jesusninoc.com/02/27/crear-y-utilizar-una-tuberia-sin-nombre-en-linux/
- Pipes sin nombre https://www.jesusninoc.com/03/02/comunicar-dos-procesos-usando-pipes-sin-nombre-en-python/
- Pipes con nombre https://www.jesusninoc.com/03/03/comunicar-dos-procesos-usando-pipes-con-nombre-en-python/
- Sincronizar procesos
- Señales
- Creación procesos
- Programación concurrente
- Programación paralela
- Memorias compartidas https://github.com/jesusninoc/ClasesPSP/blob/master/2022-10-17.md#memorias-compartidas
- Señales https://github.com/jesusninoc/ClasesPSP/blob/master/2022-10-17.md#se%C3%B1ales
- Semáforos
- Programación distribuida
Ejercicios
Lanzar un programa en Kotlin
- https://www.jesusninoc.com/03/02/lanzar-un-programa-en-kotlin/
- https://www.jesusninoc.com/06/06/lanzar-un-programa-en-kotlin-2/
Ejecutar un comando de Windows y almacenar la salida en un archivo en Kotlin
Ejercicio: llamar desde Kotlin a un proceso en Linux con un script en Bash
Ejecutar un script desde PowerShell
Lanzar programa que ejecute ping en Kotlin
Lanzar programa que ejecute un ping dos veces en Kotlin
Obtener información del proceso padre e hijo
Crear un proceso en Kotlin con la clase ProcessBuilder
Crear un proceso en Kotlin con la clase Runtime
Comunicar dos procesos
Programación multihilo:
Teoría de hilos
Conceptos
- Hilos
- Estado
- Interrupción
- Coroutines
- Sincronización
Ejercicios
Crear un hilo
Formas de crear hilos en Kotlin
Crear un hilo y esperar a que se ejecute completamente el hilo
Carrera de tortuga y liebre
Carrera de tortuga y liebre (creando clases)
Crear un reloj sencillo en Kotlin mediante hilos
Ejecución concurrente
Estados y prioridades de los hilos en Kotlin
Interrumpir un hilo en Kotlin
Uso de coroutines
Sincronización
Tablas de multiplicar con hilos
Tablas de multiplicar utilizando coroutines en Kotlin
Programación de comunicaciones en red:
Teoría de redes
Conceptos
- Peticiones a servidores (GET, POST, fuerza bruta)
- URL
- URL (GET y POST)
- Scraping
- Conexión TCP/IP entre distintos sistemas
- Proyecto de conexión remota
- Sockets TCP y UDP
- Serializar https://www.jesusninoc.com/07/05/serializar-y-deserializar-un-objeto-almacenado-en-un-fichero-en-kotlin/
- Serializar JSON https://www.jesusninoc.com/07/05/serializar-y-deserializar-ficheros-json-con-gson-en-kotlin/
Ejercicios
Conectar con una URL en Kotlin
Cómo conectar con una URL y cambiar el User-Agent
Realizar una petición HTTP POST en Kotlin
Comprobar si un puerto TCP está abierto en Kotlin
Servidor y cliente TCP básicos en Kotlin
Servidor y Cliente TCP en Kotlin utilizando clases distintas
Servidor y cliente UDP básicos en Kotlin
Cliente y servidor para enviar objeto serializado por TCP en Kotlin (utilizando hilos)
Enviar una imagen entre un cliente y un servidor utilizando sockets TCP en Kotlin
MulticastSocket en Kotlin
Generación de servicios en red:
Teoría de servicios en red
Conceptos
Ejercicios
Utilización de técnicas de programación segura:
Teoría de programación segura
Conceptos
Ejercicios
Codificación y Decodificación en Base 64 en Java
Hash SHA-512 en Kotlin
- https://www.jesusninoc.com/07/04/hash-sha-512-en-kotlin-utilizando-java-security/
- https://www.jesusninoc.com/07/07/generacion-de-resumenes-sha-512-en-kotlin/