j'ai fait un programme de chat a peu pres equivalent, le code est
posté mais il n'est pas vrament bon. Le principe que j'ai utilisé est
le même que le tien. Pour ce qui est de rassembler serveur et client en
même temps je vois à peu près une solution mais il faut des notions
d'algorithmique distribuée. Le principe:
On considère que tous tes programmes sont des clients (pour facilité l'explication). Pour pouvoir discuter
il te faudra connaître l'ip d'au moins un des clients pour établir une connection. Ainsi losque tu lance la connection voila ce qui va se passer:
tu connecte à un utilisateur déja connecté. La partie serveur du
programme chez qui tu te connecte t'ajoute a sa liste des personnes
connectées, et envoie un message de mise à jour à toute les personnes
qui se trouvent dans sa liste de personnes connectées.
Les autres reçoivent ce message, t'ajoutent à leur liste et font de
même (c'est à dire envoient un message de mise à jour à toutes les
personnes qu'ils savent connectées). Ils doivent maintenant se
connecter à toi, dans le message figurait ton ip et ils se connectent.
Le client de chez toi va faire la même chose, c'est à dire les ajouter à la liste et envoyer les messages de mises à jour.
Tout ca à priori fait beaucoups de messages inutiles mais comme ca tu
est sur et certain d'avoir de bonnes mises à jour des personnes
connectées.
Il ne faudra pas oublier de traiter le cas ou la mise à jour est faite
pour une personne à qui tu as déja la connection, dans ce cas la mise à
jour néeffectue aucune action.
Je ne sais pas si je suis très clair dans mon explication mais c'est la
première solution qui me viens à l'esprit. Je ne suis pas certain que
totu ca fonctionnerai du premier coups mais je sais que ca ne serai pas
très loin du résultat.
Si tu veux que je t'aide un peu plus ou que je teste ton code, envoie
moi un message y'a pas de soucis. Si tu connais le CSP alors la ca
serai encore plus facile je pourrai presque te donner une ébauche de
l'algorithme

.
A bientot.
darkkinjhttp://www.kinj.fr.st