Communication Intra Executable (signal / kill)

Nitrakz Messages postés 60 Date d'inscription dimanche 8 novembre 2009 Statut Membre Dernière intervention 19 octobre 2010 - 23 févr. 2010 à 17:53
Nitrakz Messages postés 60 Date d'inscription dimanche 8 novembre 2009 Statut Membre Dernière intervention 19 octobre 2010 - 6 mars 2010 à 16:39
Bonjour,

Dans le cadre d'un projet genre "chat", je doit faire communiquer 2 threads entre eux a l'aide de:
signal() en réception
kill() en envoyeur

J'arrive via le processus client auquel je passe le pid du serveur a envoyer les signaux sur le serveur. Le problème c'est que maintenant j'aimerais récupérer sur le programme serveur le pid du client pour faire une liaison serveur --> client.
je n'ai malheureusement le droit qu'au SIGUSR1 // SIGUSR2.
J'ai pensé envoyer en premier message client --> serveur le PID du client. Mais je pense pas que se soit approprier en cas de perte du signal ou autre.

Voila, merci pour vos futur reponse.


There is no place like 127.0.0.1 /
A voir également:

3 réponses

TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
24 févr. 2010 à 23:44
Salut,

Tient j'ai déjà vu ça quelque part... ho c'est exactement le sujet du projet "Minitalk" d'Epitech Soit dit en passant ce ne sont pas des threads que tu fais communiquer mais des processus bien distincts (l'implémentation des threads pouvant varier on va éviter de faire la confusion).

Pour en revenir à ta question, que le client donne son PID est pourtant un très bon début et permet d'obtenir d'excellents résultats au final (et ça j'en sais quelque chose). La perte du signal est une chose, adopter un protocole permettant de gérer ce cas en est une autre qui te permet de passer outre ce problème. Regarde donc le fonctionnement de TCP pour obtenir quelques pistes, s'en inspirer peu être bon.
0
Nitrakz Messages postés 60 Date d'inscription dimanche 8 novembre 2009 Statut Membre Dernière intervention 19 octobre 2010
25 févr. 2010 à 11:44
Oui c'est bien le minitalk :)
Je pense que je vais faire une première transmission fortement temporisé pour récupérer le PID du client. Puis tester la connexion serveur --> client voir si le PID a bien été transmis.
Good, merci =)

There is no place like 127.0.0.1 /
0
Nitrakz Messages postés 60 Date d'inscription dimanche 8 novembre 2009 Statut Membre Dernière intervention 19 octobre 2010
6 mars 2010 à 16:39
Pour ceux qui aurait un projet similaire a faire, un petit conseil:
--_> Faites tout en recursif, sans aucune boucle while :)

There is no place like 127.0.0.1 /
0
Rejoignez-nous