"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).