Faire communiquer 2 programmes sur une mm machine

Faire communiquer 2 programmes sur une mm machine - C++ - Programmation

Marsh Posté le 05-12-2002 à 18:59:02    

Salut à tous,
 
je ne sais pas si j'ai bien choisi le titre... je voudrais faire communiquer 2 programmes, genre client/serveur, mais sur une mm machine, donc pas en reseau... ;) en langage c.
je v vous donner un exemple simple mais qui utilise surement la mm methode que celle dont j'ai besoin. un jeu en reseau type puissance 4 par exemple (donc 2 joueurs).
 
- le serveur signale au client qu'il attend les données.
- le client entre les données (sur le clavier).
- le serveur verifie que les données sont bonnes.
     * si elles sont fausses, le serveur envoie un signal particulier au client pr lui dire de recommencer.
     * si elles sont bonnes, le serveur envoie un autre signal particulier pr aquitter. il verifie si le jeu est fini.
          + si non, le serveur recommence tout le processus avec l'autre client et l'informe du nouvel etat du jeu.
          + si oui, il informe les 2 clients que le jeu est fini et affiche l'issue du jeu sur la sortie standard.
 
 
voila, je ne vous demande biensur pas de me pondre le code entier. par contre, etant donné que je debute en programmation, j'aurais aimé savoir comment faire ceci. le serveur (qui n'en est pas un en fait...) doit gerer 4 descripteurs de fichiers : l'entree et la sortie standard de chacun des joueurs.
ne sachant pas bien manipuler les fonctions adequates, je bloque.
on m'a dit qu'il faudrait utiliser les fonctions fscanf et fdopen. j'etais pr ma part parti ds des fork et des pipe, mais j'ai peur de faire fausse route.
 
DONC je fais appel à vos connaissances et à votre aide.
Je vous remercie :)

Reply

Marsh Posté le 05-12-2002 à 18:59:02   

Reply

Marsh Posté le 05-12-2002 à 19:30:03    

Le plus simple, c'est d'utiliser les sockets. L'avantage, c'est que les 2 programmes pourront fonctionner qu'ils tournent sur la même machine ou sur 2 machines différentes.
 
Maintenant, si tu veux utiliser autre chose que les sockets, il y a la combinaison blocs de mémoire partagée/mutex. Là, c'est sûr, les 2 programmes ne pourront tourner que s'ils sont sur la même machine.

Reply

Marsh Posté le 05-12-2002 à 19:36:48    

merci de repondre...
 
 
nan je ne dois pas utiliser de socket.
quant aux mutex, j'en suis pas encore là :cry: n'y'a-t-il pas un autre moyen? quelle serait la syntaxe qui pourrait faire ca plizzzzzzzz :sweat:  
 
merci

Reply

Marsh Posté le 05-12-2002 à 20:23:13    

et pourquoi pas des pipe, des signaux et de la mémoire partégée?


---------------
du bon usage de rand [C] / [C++]
Reply

Marsh Posté le 06-12-2002 à 11:45:05    

Si les echanges sont limitées -> messages
si les echanges sont plus important segment de memoire partagée (avec semaphores)
 
et bien sur les sockets qui marcheront meme si les deux progs sont sur la meme machine.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed