GNU/Linux >> Tutoriels Linux >  >> Linux

Modèle événementiel en C avec sockets

"quelle est la philosophie derrière ce modèle"

Axé sur les événements signifie qu'il n'y a pas de "surveillance", mais que l'événement lui-même initie l'action.

Cela est généralement initié par une interruption, qui est un signal envoyé au système par un périphérique externe, ou (dans le cas d'une interruption logicielle) un processus asynchrone.

https://en.wikipedia.org/wiki/Interrupt

Une lecture plus approfondie semble être ici :

https://docs.oracle.com/cd/E19455-01/806-1017/6jab5di2m/index.html#sockets-40- "Interrupt-Driven Socket I/O"

http://cs.baylor.edu/~donahoo/practical/CSockets/textcode.html contient également des exemples de sockets pilotés par interruption, ainsi que d'autres exemples de programmation de sockets.


Vous devez absolument lire ce qui suit :http://www.kegel.com/c10k.html. Cette page est l'aperçu parfait des techniques événementielles et asynchrones.

Cependant, une réponse rapide et grossière  :l'événementiel n'est ni non bloquant, ni asynchrone.

Piloté par les événements signifie que le processus surveillera ses descripteurs de fichiers (et sockets) et n'agira que lorsqu'un événement se produit sur un descripteur (les événements sont :données reçues, erreur, devenues inscriptibles, ...).

Les sockets BSD ont la fonction "select()". Lorsqu'il est appelé, le système d'exploitation surveille les descripteurs et revient au processus dès qu'un événement sur l'un des descripteurs se produit.

Cependant, le site Web ci-dessus contient de bien meilleures descriptions (et des détails sur les différentes API).


Linux
  1. Pourquoi la substitution de processus Bash ne fonctionne-t-elle pas avec certaines commandes ?

  2. Patcher un binaire avec Dd ?

  3. Changer de disposition de clavier avec I3 ?

  4. Le hub USB 3.0 ne fonctionne pas avec certains appareils sous Ubuntu 18.04 ?

  5. Utilisez sed avec ignorer la casse lors de l'ajout de texte avant un motif

Installer Linux avec LVM

Remplacer du par de la poussière sous Linux

Apportez de la couleur à votre terminal Linux avec lolcat

Ajout d'une interface graphique simple aux scripts shell Linux avec kdialog

Apprenez le streaming d'événements avec ce didacticiel Apache Kafka

Couleurs avec unix command watch ?