2011-09-29 1 views
2

Possible en double:
multi client/server chat program in c#?Quelle est la meilleure façon de créer une application de chat client-serveur C# .NET?

J'ai essayé pendant un certain temps pour construire un simple, le chat client-serveur, et je continue à trouver qu'il ya un certain nombre de façons différentes.

J'étais simplement curieux de savoir quelle serait la manière la plus correcte.

La première consiste à créer un nouveau socket, le lier à un port spécifique et à n'importe quelle adresse IP, puis à écouter de nouvelles connexions (et ce, jusqu'au niveau du tutoriel). Le suivant implique d'utiliser un TcpListener pour écouter sur un port spécifique (bien qu'il émet un avertissement disant qu'il est déprécié, et je dois inclure une adresse IP), il attend ensuite une nouvelle connexion TCP, puis crée soit une nouvelle hashtable soit une nouvelle liste pour stocker le TcpClient (s). Et c'est tout le côté serveur. Le côté client est à peu près le même, essayant toujours de se connecter au serveur.

Alors, quelle est la meilleure façon d'en construire une? En outre, devrais-je utiliser StreamReader et StreamWriter (que certains tuts utilisent), ou devrais-je utiliser NetworkStream, que dois-je utiliser pour transférer les messages?

+0

Pourriez-vous expliquer ce qu'est WCF? – Alper

+0

WCF est "Windows Communication Foundation". C'est un cadre qui couvre les communications entre les programmes. Il peut être configuré pour utiliser divers protocoles et objets de communication, et au niveau de l'application, vous n'avez pas à vous soucier des détails. Vous pouvez effectivement envoyer un objet via un socket, sans avoir besoin d'écrire du code pour sérialiser/désérialiser le contenu. –

+0

Plus d'informations sur WCF: Généralement dans WCF, il est plus facile pour le client d'interroger le serveur que pour le serveur d'envoyer quelque chose. Le client effectue simplement un appel de fonction et récupère les résultats du serveur. Le résultat peut être un objet, une liste d'objets ou tout ce que vous pouvez programmer une fonction à renvoyer. Bottom line: Les appels dans WCF ressemblent à tous les autres appels de fonction, mais le traitement peut être effectué sur un serveur distant. –

Répondre

0

Vous êtes sur la bonne voie. Cependant, vous voudrez peut-être vous pencher sur certaines des fonctionnalités les plus avancées de WCF, telles que les services Duplex qui permettront une poussée du serveur basée sur un événement.

0

Personnellement, je voudrais juste installer un serveur XMPP et en parler avec Jabber.net (http://code.google.com/p/jabber-net/) ou quelque chose d'autre mais je n'ai pas regardé dans quelques-uns années.

Questions connexes