GNU/Linux >> Tutoriales Linux >  >> Linux

Modelo basado en eventos en C con sockets

"cuál es la filosofía detrás de este modelo"

Impulsado por eventos significa que no hay "supervisión", sino que el evento mismo inicia la acción.

Por lo general, esto lo inicia una interrupción, que es una señal al sistema desde un dispositivo externo o (en el caso de una interrupción de software) un proceso asíncrono.

https://en.wikipedia.org/wiki/Interrupción

Más lectura parece estar aquí:

https://docs.oracle.com/cd/E19455-01/806-1017/6jab5di2m/index.html#sockets-40- "E/S de socket controlado por interrupción"

También http://cs.baylor.edu/~donahoo/practical/CSockets/textcode.html tiene algunos ejemplos de sockets activados por interrupciones, así como otros ejemplos de programación de sockets.


Definitivamente debe leer lo siguiente:http://www.kegel.com/c10k.html. Esa página es la descripción general perfecta de las técnicas asincrónicas y basadas en eventos.

Sin embargo, una respuesta rápida y sucia :controlado por eventos no es no bloqueante ni asíncrono.

Impulsado por eventos significa que el proceso monitoreará sus descriptores de archivo (y sockets) y actuará solo cuando ocurra algún evento en algún descriptor (los eventos son:datos recibidos, error, se volvió escribible, ...).

Los sockets BSD tienen la función "select()". Cuando se le llama, el sistema operativo monitoreará los descriptores y regresará al proceso tan pronto como ocurra algún evento en uno de los descriptores.

Sin embargo, el sitio web anterior tiene descripciones mucho mejores (y detalles sobre las diferentes API).


Linux
  1. Parchear un binario con Dd?

  2. ¿Cambiar diseños de teclado con I3?

  3. ¿El concentrador USB 3.0 no funciona con algunos dispositivos en Ubuntu 18.04?

  4. Seguimiento de eventos con Google Analytics y WordPress

  5. ¿Cómo deshabilitar el inicio de sesión SSH con contraseña para algunos usuarios?

Instalar Linux con LVM

Reemplace du con polvo en Linux

Dale un poco de color a tu terminal Linux con lolcat

Agregar una GUI simple a los scripts de shell de Linux con kdialog

Aprenda la transmisión de eventos con este tutorial de Apache Kafka

Eliminar ALGUNOS modos de enlace anunciados con ethtool