Realiser une application chat [Résolu]

Signaler
Messages postés
75
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
6 août 2007
-
Messages postés
75
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
6 août 2007
-
Je veux realiser une application chat mais mon probleme ,j'ai passé des semaines mais je n'arrive pas.Je comprends bien les notions de socket,TcpClient et TcpListener mais l'application que j'ai realise,un seul message peut etre transfere par le client et le serveur,on me dit que je dois utiliser des threads mais ca ne marche pas.Je pense c'est peut que je suis nulle en c#.
Alors quelqu'un qui aurait des codes simples,des liens,des explications supplementaires peut etre je n'ai pas compris .Ecrivez moi pour le realiser.

FD

2 réponses

Messages postés
1
Date d'inscription
mardi 21 février 2006
Statut
Membre
Dernière intervention
21 février 2006

Bonsoir francesdereve,
Pour réaliser un chat je peux te venir en aide... J'ai réalisé un mini msn dans le cadre de ma formation (certification Microsoft).
Pour se faire voici tout d'abord quelques bases. Connaît-tu les "design patterns" et la programmation objet, si tu n'as pas de notion dis le moi, je pourrais te les décrire. Un design très intéressant pour réaliser un chat : le design "Observer". En clair, tu as un objet Subject et un Objet Observer, l'objet Observer dispose d'une méthode Update() (on met le code que l'on veut dedans en fonction de l'action à réaliser) et l'Objet Subject s'initialise avec un tableau d'objets Observer, il dispose d'une méthode Notify(), cette méthode va en fait appeler chacun des objets Observer (de son tableau) et lui appliquer la méthode Update(). Concrétement, si l'on s'appuie sur l'idée du chat, un client envoie un message (il est l'Objet Subject), cette action appèle la méthode Notify() qui va donc signaler aux autres clients (les objets Observer), donc va appeler la méthode Update() de chaque client qui leur permettra de savoir q'un nouveau message est arrivé. Ainsi on reçoit les nouveaux messages en temps réel. Certes, les threads peuvent être utilisés, mais si tu veux implémenter ce design, il te faut utiliser le .NET Remoting, c'est une technique de programmation qui permet de développer des solutions client-serveur (via un réseau) en utilisant soit le port TCP, soit le port HTTP(IIS). Cela t'évite complétement d'utiliser les sockets et la programmation port TCP qui demande un peu de réfléxion.
Donc si tu utilise .NET Remoting en implémentant le design "Observer", tu devrais arriver à une solution qui fonctionne correctement sans trop de difficultés, faut-il encore connaître .NET Remoting ? Si ce n'est pas le cas, je suis près à t'expliquer plus en détails tout cela...
Donc en fait, il faut d'abord créer une DLL qui implémente le design Observer, une application Serveur qui utilise la DLL, et une application Client qui utilise également la DLL, la DLL est un peu comme leur point de liaison. Puis le .NET Remoting permet de communiquer via le réseau en inscrivant simplement le port TCP, et l'objet à faire pointer via le réseau (le Marshalling, une notion du .NET Remoting). En fait, l'application Client enverra un message (elle est Objet Subject), le serveur va reçevoir le message et l'envoyer à tous les clients, puisqu'il est Objet Observer et détient donc la liste des clients (Objet Subject), il n'aura plus qu'à appeler sa méthode Notify(). Voilà pour la petite histoire et désolé pour cette longue réponse, cela paraît compliqué mais en fait ce n'est pas si dur que cela, et si tu as besoin de détails, d'explications, de schémas, ... N'hésites pas...

Jean-Baptiste
Messages postés
75
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
6 août 2007

Salut JBDevNet,je suis tres contente de trouver quelqu'un qui puisse m'aider.Pour la programmation objet ,c'est clair mais si tu veux m'aider à mieux comprendre,pas de probleme.Mais le .Net remoting,je m'y connais pas du tout de meme que le Notify et Observer dont tu parles.Donc j'attends ton aide
Tu peux m'ecrire sur [mailto:fdorval15@yahoo.fr fdorval15@yahoo.fr] ou csharpFr.com


Merci,je compte sur toi

FD