## Programación de comunicaciones en red:
 -	Comunicación entre aplicaciones.
 -	Roles cliente y servidor.
 -	Elementos de programación de aplicaciones en red. Librerías.
 -	Sockets.
 -	Creación de sockets.
 -	Enlazado y establecimiento de conexiones.
 -	Utilización de sockets para la transmisión y recepción de información.
 -	Programación de aplicaciones cliente y servidor.
 -	Utilización de hilos en la programación de aplicaciones en red.

### Teoría de redes
* https://www.jesusninoc.com/12/16/programacion-de-comunicaciones-en-red-programacion-de-servicios-y-procesos/
* https://www.jesusninoc.com/11/13/cmdlets-for-tcpip-model-layers/

### Conceptos
- Peticiones a servidores (GET, POST, fuerza bruta)
- URL
- URL (GET y POST)
- Servicios (bombillas)
- Scraping
- Fuerza bruta https://github.com/jesusninoc/Seguridad/tree/master/GetPost
- 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
* https://www.jesusninoc.com/07/03/conectar-con-una-url-en-kotlin/
* https://www.jesusninoc.com/10/16/conectar-con-una-url-en-kotlin-explicacion-paso-a-paso/
#### Cómo conectar con una URL y cambiar el User-Agent
* https://www.jesusninoc.com/07/03/como-conectar-con-una-url-y-cambiar-el-user-agent/
#### Realizar una petición HTTP POST en Kotlin
* https://www.jesusninoc.com/07/03/realizar-una-peticion-http-post-en-kotlin/
#### Comprobar si un puerto TCP está abierto en Kotlin
* https://www.jesusninoc.com/07/04/comprobar-si-un-puerto-tcp-esta-abierto-en-kotlin/
#### Servidor y cliente TCP básicos en Kotlin
* https://www.jesusninoc.com/07/04/crear-un-servidor-y-un-cliente-en-kotlin/
#### Servidor y Cliente TCP en Kotlin utilizando clases distintas
* https://www.jesusninoc.com/07/04/servidor-y-cliente-tcp-en-kotlin-utilizando-clases-distintas/
#### Ejecutar un comando remotamente mediante una comunicación Cliente-Servidor en Kotlin
* https://www.jesusninoc.com/10/07/ejecutar-un-comando-remotamente-mediante-una-comunicacion-cliente-servidor-en-kotlin/
#### Servidor y Cliente con corrutinas en Kotlin
* https://www.jesusninoc.com/10/14/servidor-cliente-corutinas-en-kotlin/
#### Servidor y cliente UDP básicos en Kotlin
* https://www.jesusninoc.com/07/04/crear-un-servidor-y-un-cliente-udp-en-kotlin/
#### Cliente y servidor para enviar objeto serializado por TCP en Kotlin (utilizando hilos)
* https://www.jesusninoc.com/07/05/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 
* https://www.jesusninoc.com/07/06/enviar-una-imagen-entre-un-cliente-y-un-servidor-utilizando-sockets-tcp-en-kotlin/
#### MulticastSocket en Kotlin
* https://www.jesusninoc.com/07/07/multicastsocket-en-kotlin/

### Proyecto conexión remota
* https://www.jesusninoc.com/12/26/convertir-la-entrada-de-microfono-a-texto/
* https://www.jesusninoc.com/10/30/transmitir-una-captura-de-pantalla-entre-un-servidor-y-un-cliente-desde-powershell-sockets-tcp/
* https://www.jesusninoc.com/10/30/transmitir-una-captura-de-pantalla-entre-un-servidor-y-un-cliente-y-mostrarla-en-un-formulario-desde-powershell-sockets-tcp/
* https://www.jesusninoc.com/10/30/transmitir-una-captura-de-pantalla-entre-un-servidor-y-un-cliente-y-mostrarla-cada-dos-segundos-en-un-formulario-desde-powershell-sockets-tcp/
* https://www.jesusninoc.com/10/30/realizar-una-comunicacion-bidireccional-entre-un-cliente-y-un-servidor-mediante-tcp-desde-powershell-en-windows/
* https://www.jesusninoc.com/02/01/automatizar-tareas/
* https://www.jesusninoc.com/03/01/mover-el-raton-a-las-posiciones-que-estan-guardadas-en-un-fichero/
* https://www.jesusninoc.com/11/19/hacer-clic-en-una-posicion-de-la-pantalla-con-powershell/
* https://www.jesusninoc.com/02/02/realizar-captura-de-pantalla-y-dividir-en-partes-la-captura/
* https://www.jesusninoc.com/07/06/send-the-cursors-position-between-client-and-server-sockets-udp/
* https://www.jesusninoc.com/07/10/transfer-image-between-server-and-client-sockets-tcp/
* https://www.jesusninoc.com/11/07/transfer-images-between-server-and-client-sockets-tcp/

--------------
--------------

# Proyecto primera evaluación

## Presentación del proyecto:
- Capturas de la ejecución (o presentarlo en clase)
- Comprimir
- Variables correctas
- Ordenar
- Métodos
- Seguridad
- Rutas relativas
- Cerrar recursos

## Temas a evaluar
- Programación concurrente
- Programación paralela
- Programación distribuida
- Procesos
- Hilos:
	- Crear, iniciar y finalizar hilos
	- Sincronizar
	- Varios hilos
	- Prioridad
- Red:
	- Utilización de servidores web (GET y POST)
	- Roles de cliente y de servidor
	- Librerías
	- Socket
		- Hilos
- Servicios en red:
	- Varios clientes concurrentes
	- Disponibilidad del servicio
	- Servicios de red capa Aplicación
- Seguridad:
	- Programación segura
	- Criptográfia
	- Políticas de seguridad para limitar y controlar el acceso de los usuarios
	- Roles
	- Asegurar información transmitida
	- Sockets seguros
