Chat en local

fjxokt Messages postés 840 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 25 février 2009 - 12 mars 2005 à 10:16
harras20 Messages postés 1 Date d'inscription jeudi 10 juillet 2003 Statut Membre Dernière intervention 20 mars 2006 - 20 mars 2006 à 18:17
bonjour a tous,

Je debute en cpp (et en socket) et j'ai reussi a faire un mini chat
local, mais le probleme et que j'ai du creer un pgr serveur.exe et un
client.exe.

Donc, apres avoir lancé les 2, on recoit les messages sur le coté serveur et on les envoie sur le coté client.

Ma question est la suivante: est-il possible de faire un chat reseau
local en mettant et serveur et client dans un seul executable.
(j'utilise devcpp)

Merci par avance

3 réponses

darkkinj Messages postés 18 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 12 mars 2005
12 mars 2005 à 14:19
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.
darkkinj
http://www.kinj.fr.st
0
minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 2 décembre 2005 3
13 mars 2005 à 19:14
Et pourquoi ne pas faire un serveur et des client qui se connecte
dessus (genre IRC). Le serveur s'occupe de géré les clients et de
renvoyé les messages a chacun. Les clients envoi leurs messages au
client qui les renvois (ainsi que les nouveau venu).
http://www.salemioche.com/irc/ pour plus de détails sur l'IRC, essai
une connexion telnet pour mieux voir les messages envoyé du client et
du serveur.

Le CyberMonde nous offre une meilleur qualité de vie
CyberMan.inc The WebSite
0
harras20 Messages postés 1 Date d'inscription jeudi 10 juillet 2003 Statut Membre Dernière intervention 20 mars 2006
20 mars 2006 à 18:17
salut à tous,

mtn je suis entraint de developer un petit prog mini-chat
en process IPC systeme V sous linux .
vous pouvez proposer des solutions



les énnoncé du Programme:



Ecrire un progamme repésentant un mini-chat fonctionnant par file de messages

- le 1er processus lancé va créer la
fille de message et une memoire partagés contenant le nombre de
processus en cours d"execution (et un sémaphore pour protéger la
mémoire partagée). on utilisera la mémoire partagéé pour faire une
sorte que chaque processus possède un num unique .Ce num sra utilisé
pour désigner le pus à qui envoyer un msg .le premier pus aura le num 0.

_ les autres processus ouvriront la file de message et la memoire
partagée et auront comme num la valeur de la memoire partagée qui devra
ensuite etre incrémenté .Ensuite le processus père va créer un
processus fils qi se chargera de lire dans la file de msg (uniquement
les message qui lllllui sont destiné ) et d'afficher le texte lu à
l'ecran .Le pére se chargera des saiasie clavier .Il faut saisir un
destinataire (qui sera un entier ) et du texte (avec des fgets) puis
envoyer le messange à ce destinataire ds la file de msg
.enfin si l'utilisateur saisi le le mot QUIT dans le processus père
,cela terminera les deux
0
Rejoignez-nous