Message queues:
*Taille limité : int msgmax, int msgmnb
*Nombre d'entrée limitée : msgmap
*Il faut indiqué la taille des données a envoyé.
*Possède des timeouts pour l'envoie et la réception.
*Comportement de datagramme : lire une entrée supprime de la file
d'attente. Si vous ne lisez pas l'ensemble des données, le reste est
perdu. Par exemple : envoyer un message de 20 octets, mais le
destinataire lit 10 octets. Les 10 octets restants sont perdus.
*Taille de la mémoire de la file d'attente crée a l'initialisation.
Pipes:
*Aucune limitation de taille.
* Les pipes sont dans une couche supérieur au message queues.
* Utilise les descripteurs de fichier.
* L'envoie et la réception sont bloquantes.
Networks and embedded systems, Real time programming, network protocols, embedded linux development...
lundi 3 juin 2013
Unix soket VS Pipe
Unix socket VS pipe
Pipe :
* un canal unidirectionnel de données pour créer une communication bidirectionnel il faut créer deux pipe.
* Avec le pipe on peut seulement faire des flux d'octets.
* Simple a utilisé.
*Communication entre deux processus.
* Plus rapide que les sockets entre 12 et 15%. http://www.opendmx.net/index.php/Pipe_vs_Unix_Socket_Performance
* Plus fiable.
Unix Sockets :
*un canal bidirectionnel de données.
*Unix domain sockets offrent flux d'octets et datagramme.
*Plus compliqué a utilisé que les pipes.
*Communication entre plusieurs processus.
*Envoi et reception de descricpteur de fichier entre processus : recvmsg(),
* Moins rapide que les pipes. http://www.opendmx.net/index.php/Pipe_vs_Unix_Socket_Performance
*Plus flexible
Pipe :
* un canal unidirectionnel de données pour créer une communication bidirectionnel il faut créer deux pipe.
* Avec le pipe on peut seulement faire des flux d'octets.
* Simple a utilisé.
*Communication entre deux processus.
* Plus rapide que les sockets entre 12 et 15%. http://www.opendmx.net/index.php/Pipe_vs_Unix_Socket_Performance
* Plus fiable.
Unix Sockets :
*un canal bidirectionnel de données.
*Unix domain sockets offrent flux d'octets et datagramme.
*Plus compliqué a utilisé que les pipes.
*Communication entre plusieurs processus.
*Envoi et reception de descricpteur de fichier entre processus : recvmsg(),
recv(),
sendmsg(), send(), sendto(), et sendmsg().* Moins rapide que les pipes. http://www.opendmx.net/index.php/Pipe_vs_Unix_Socket_Performance
*Plus flexible
Inscription à :
Articles (Atom)