Les pipes sont comparables à des buffers tournants. Deux types très différents pipes anonymesCes pipes sont disponibles sous 95/98/NT Uniquement entre deux processus ou deux threads d'une même machine. La même commande permet de récupérer les handles de lecture et d'écriture : CreatePipe(&HComRead,&HComWrite,NULL,SizeMaxCom) Les écritures et lecture utilisent les fonctions ReadFile et WriteFile. Si le buffer est saturé l'emetteur reste bloqué en attente à moins d'utiliser les mécanismes d'overlapping. Le récepteur peut récupérer dans son tampon plusieurs messages, le dernier pouvant être incomplet puisqu'on travaille dans le mode de file d'octets. Les pipes anonymes sont deux fois plus rapides que les mailslots. (100+100 us sur un P120, 50+50 sous 98sur un P166 sous NT) pipes nommésSeule la partie cliente des pipes nommés est implémenté sous Windows 95/98 Les pipes nommés peuvent s'utiliser entre deux machines grace à la syntaxe "\\nom_ordinateur\pipe\chemin\nom_pipe" Ils sont plus complexes que les pipes anonymes présentant plusieurs modes (datagrammes ou file d'octet), un pipe datagrammes restant toutefois lisible en file d'octets. L'ouverture du serveur se fait par exemple par HComRead = CreateNamedPipe(DeviceCommunication,PIPE_ACCESS_INBOUND, L'ouverture du client se fait par HComWrite =CreateFile("\\.\pipe\chemin\nom_pipe", Par rapport au mailslot, la livraison est garantie, le broadcast (arroser plusieurs stations) n'est pas possible, par contre plusieurs tâche serveur peuvent exister.
|
|