begin process at 2012 05 28 21:59:02
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

Autre

 > 

Communication entre application


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Communication entre application

jeudi 21 octobre 2010 à 22:05:58 | Communication entre application

abdoulax

Je fais un application sous plateforme linux. Je pense qu'à termes cette application sera lancé en tant que service.
J'aimerai pouvoir interagir avec cette application afin de connaître son status. Comment puis-je communiquer avec cette app?

Pour le moment je pense aux sockets mais j'aime pas trop cette solution. N'y aurait il pas un autre moyen en utilisant des pipes ou des messages systèmes?

Bonne prog!
jeudi 21 octobre 2010 à 23:15:00 | Re : Communication entre application

CptPingu

Administrateur CodeS-SourceS
Réponse acceptée !
Pour dialoguer avec un service/démon le mieux reste d'utiliser du rpc. On peut aussi utiliser des pipes ou des sockets. A noter que les sockets sous Unix, ne désigne pas forcément du réseau, c'est juste un moyen de communication (on peut même créer des fichiers de pipe ou des fichiers de socket).

rpc (utilise des sockets):
- Avantages
..* Puissant
..* Fonctionne aussi si le service est sur une autre machine
- Désavantages
..* Pas de bon framework rpc existant en C++ (tout du moins à ma connaissance). Tu seras obligé d'en faire un, ce qui nécessitent pas mal de connaissances dans ce domaine. La sérialisation des objets peut se faire via "Google ProtoBuffer" (que je recommande vivement).

Socket
- Avantages:
..* Pas trop dur à mettre en place (socket local, voir ce qu'est un fichier socket, et: http://pwet.fr/man/linux/conventions/unix)
..* Pas grand chose à changer pour que cela marche aussi en réseau
- Désavantages:
..* Moins simple à mettre en oeuvre.

Pipe
- Avantages:
..* Très simple à mettre en place (http://www.lefinnois.net/artPROG/Pipes/tubes.php)
- Désavantage:
..* Ne fonctionne qu'en local

Peut être que d'autre auront de meilleurs solutions à te proposer, mais à mon sens tu devrait te tourner vers les tubes nommés (fichier pipe) si c'est un projet perso que tu veux finir vite, et vers les rpc si c'est un projet professionnel solide.

________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
jeudi 21 octobre 2010 à 23:28:58 | Re : Communication entre application

abdoulax

Génial ta réponse! Merci pour tous ces renseignements. Après mes recherches je pensais aussi me tourner vers les tubes nommés!
Le service est vraiment simple et je pense ne jamais avoir besoin de l'intéroger à distance.
(Et si jamais cela arrive, j'utiliserai une application tierce tel que PHP...)

Merci et bonne prog
jeudi 21 octobre 2010 à 23:36:41 | Re : Communication entre application

abdoulax

En plus le tuto sur les tubes nommés est vraiment bien expliqué. Je me pause une question, les messages sont en mémoire, donc le content de se pipe se aussi grand que la mémoire disponible? Et si on dépasse cette mémoire alors il supprimera les données les plus anciennes? (enfin cela semble logique )
vendredi 22 octobre 2010 à 11:22:33 | Re : Communication entre application

CptPingu

Administrateur CodeS-SourceS
Je te cite du wikipédia :)

Sous Unix, le tube est implémenté grâce aux appels systèmes pipe(), fork() et exec(). Comme un processus peut envoyer des informations plus rapidement que le suivant ne peut les lire, il existe un buffer géré par le noyau et associé au tube. Lorsque le buffer est plein, le processus qui invoque l'appel write() est bloqué jusqu'à ce qu'un processus lise le contenu du buffer. Sous Linux la taille du buffer est 65536 octets.


________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
vendredi 22 octobre 2010 à 11:23:54 | Re : Communication entre application

CptPingu

Administrateur CodeS-SourceS
En gros, la mémoire ne vas pas exploser. L'application qui écrit va juste se mettre en attente, si les tubes sont pleins.

________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question


Cette discussion est classée dans : application, communication, pense


Répondre à ce message

Sujets en rapport avec ce message

communication client/serv SECURISEE [ par neoTHGLF ] Bonjour, j'aimerais savoir comment je peux creer une application client/serveur en utilisant par exemple le protocole ssl.si vous voulez un exemple, m Communication entre programme MFC et Programme Windows [ par vaniweb ] Bonjour,J'ai créé une application avec les classes MFC et un autre programme pour Windows avec WndProc et WinMain.Je voudrais que les deux programmes communication réseaux sous visual c++ 6.0 [ par darksoul07 ] Je développe une application client serveur pour discuter en réseauxExiste t il sous visual c++ 6.0 une fonction permettant de savoir si un client est Pb pour application Windows simple [ par Chouchou182 ] Dans une DialogBox Window, comment vérifier le texte tapé par l'utilisateur dans une Edit Box et comment savoir si une Check Box est cochée ou non.Mer Rechercher D'application d'execution distante (NT-2000) [ par MarioDev ] Bonjour ,Je voudrait savoir si une personne ( meilleure que moi en programmation ( ça doit pas etre dur )) aurait dévoloppé une application permettan programmation réseaux sous visual C++ 6.0 [ par darksoul07 ] Je développe une application client serveurExiste il un moyen de savoir si mon application client envoi des données ou si elle effectue une connexion Capture d'événement fenêtre sous windows [ par annplop ] Bonjour,le réalise une application pilotant une autre application cette dernière envoie des fenêtres que je souhaiterais capturer, ensuite je souhaite Donner la valeur 0 a une variable quand je lance mon application [ par khalidlyon ] Bonjour, Enfaite je construit une plate forme, et j'ai ce pb. si qlq un peut m aider svp. Efaite, Je lance mon application et il doit faire : si fopen Visual 6.0 :application plantée sur perte de focus [ par davidMar ] mon problème est le suivant :j'ai une petite application qui lorsque j'en "perds" le focus (je fais du Word en la laissant tourner par ex), part en vr Base de Donnée : 2 ou 3 trucs pour aider un pauvre newbie :/ [ par VolaiL ] Lut all,Oue, alors, voici la situation. J'ai réalisé une application intranet pour une entreprise en ASP. Mais pour une raison, il a fallu que je réal


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,855 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales