Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
5405 connectés 

  FORUM HardWare.fr
  Programmation

  [c/c++] IPC -> ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c/c++] IPC -> ?

n°61938
SoWhatIn22
Posté le 28-09-2001 à 07:46:38  profilanswer
 

hello,
 
voici mon interrogation du jour:
 
supposons que l'on veuille faire un programme qui fonctionne sur le principe suivant:
 
On commence par lancer un serveur, ou plus précisément un démon.
Puis depuis n'importe quel autre programme client, on veut pouvoir s'adresser à ce demon, pour lui faire executer une tache, et avoir une réponse.
 
Un exemple:
souvent, quand on utilise une API d'un constructeur quelconque, il y a un démon qui se lance (soit de façon automatique au démarage (un service sous NT), soit manuellement par l'utilisateur). Dans le programme client, on inclue une librairie fournie par le constructeur en question, et on commence par reserver des ressources ou autre. Il y a donc une communication entre les 2 processus, mais de façon completement transparente pour le programmeur.
 
Il y a clairement des IPC la dessous, mais ce n'est qu'un terme assez vague. J'imagine une solution à base de sockets, ou le serveur et le client connaissent à l'avance leur numéro de port.
Mais sans cela -> ???
 
 
Si quelqu'un pouvais m'éclairer sur le sujet.
merci d'avance ;)

mood
Publicité
Posté le 28-09-2001 à 07:46:38  profilanswer
 

n°61940
aqwsezsxdr
Posté le 28-09-2001 à 08:44:42  profilanswer
 

les IPC==Inter processus comunication, sous unix regroupent:
-les semaphores
-la memoire partagé
-les message queues
-les pipes
 
le gros probleme, c'est que l'implementation de ces concepts n'est pas tres portable. En pratique, dans ton cas il faudrait utiliser une semaphore pour synchroniser l'acces à la ressource partagé. Pour unix, c'est simple : tu utilise semget, semop, semctl (cf un man pour les param). Pour windows, t'as egalement la notion de semaphore: createsemaphore, opensemaphore...
 
D'un autre coté, tu peux tres bien utiliser une socket (socket !=IPC) mais la difficulté c'est que tu va devoir gerer à la main un protocole de synchronisation ...

n°61947
SoWhatIn22
Posté le 28-09-2001 à 09:26:23  profilanswer
 

alors voila:
 
> -les semaphores
ok, c pour la synchronisation. j'utilise deja, dc pas de soucis
 
> -la memoire partagé
ca je n'ai pas encore vraiment regardé
 
> -les message queues
> -les pipes
 
pour les messages par exemple. Le soucis, c'est que pour envoyer un message à un processus, il faut quand même connaitre son identifiant. Et cela, c'est l'OS qui le donne, donc on ne peut pas le connaitre à l'avance.
 
Pour les pipes, c'est un peu le même soucis. oki, sous windows, tu as les 'named pipes', donc tu peux t'en sortir avec ça, si ce n'est que du coup, un seul processus client va pouvoir se connecter en même temps.
 
Donc mon interrogation reste complete ;(

n°61973
SoWhatIn22
Posté le 28-09-2001 à 11:10:13  profilanswer
 

avant de ma lancer dans plus de recherches, est-ce que qq1 peut me dire si CORBA (ou DCOM sous win) n'est pas une piste à explorer.
 
qq1 peut m'éclairer?
 
merci d'avance.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [c/c++] IPC -> ?

 

Sujets relatifs
Plus de sujets relatifs à : [c/c++] IPC -> ?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)