Salut, cher ami.
Que voilà une question intéressante !
En revanche, qu'il est saugrenu de faire des tubes nommés sous Windows.
Le tube, c'est l'art de communiquer par excellence sous UNIX, qu'il soit anonyme ou nommé, où il est redoutable d'efficacité, les entrées/sorties étant gérées nativement par le système, par les fonctions standards.
La communication par socket (si j'ai traduit
pipe par
tube, je me garderai bien de traduire
socket) est encore une innovation du monde UNIX. Son implémentation diffère un peu en fonction du protocole, mais colle plus ou moins au modèle modèle OSI, et à ses 7 couches
Application
|
v
Présentation
|
v
Session
|
v
Transport
|
v
Réseau
|
v
Liaison
|
v
Physique
|
|
|
|
v
Physique
|
v
Liaison
|
v
Réseau
|
v
Transport
|
v
Session
|
v
Présentation
|
v
Application
Beaucoup de traitements, de contrôles et de vérifications, voire d'acquittements et de comptes-rendus sont nécessaires pour implémenter une communication par socket.
Donc une communication par tube est normalement bien plus rapide mais ne concerne que les processus d'un même système.
En revanche, la communication par socket est bien plus souple et par là universelle. C'est elle qui assure la communication sur Internet par exemple.
Ça, c'est la théorie. Parce que pour implémenter le bon principe des tubes nommés UNIX, les ingénieurs de Microsoft ont codé un système client-serveur qui se rapproche énormément de la mécanique socket
![:sarcastic: :sarcastic:]()
Donc, il ne s'agit là que d'une imitation dans l'interface. Je suppose que toute la mécanique des sockets n'est pas reproduite et qu'il en résulte quand même des gains en performance.
Pour info, outre les tubes et les sockets, on communique aussi entre processus par mémoire partagé+sémaphore.
Cet avis te semble-t-il pertinent ?