Votre question

Client / Serveur C#

Tags :
  • Programme
  • Programmation
Dernière réponse : dans Programmation
16 Décembre 2009 15:01:35

Bonjour à tous,

J'ai créé un "chat" réseau et je rencontre quelques difficultés afin de continuer mon projet qui ne se limitera pas qu'à un simple "chat".

Pour résumer, j'ai créé un programme "client" et un programme "serveur". Comme vous l'avez surement deviné, tous les utilisateurs du réseau utiliseront le même programme client pour se connecter au serveur.

La partie "chat" fonctionne mais maintenant j'aimerai pouvoir depuis le programme "Serveur" permettre de transmettre à tous les clients connectés, par exemple une image qui s'affichera dans un panel sur leur fenêtre de "chat".

Mon problème est le suivant: Comment je peux faire pour accéder aux composants du programme Client à partir du programme serveur étant donné que ce sont deux programmes séparés?

L'opération serait de dire au serveur -> récupère la liste des connectés -> Envoi dans leur panel telle image.

A ce niveau je ne trouve pas de solutions et je ne vois pas comment je pourrai faire étant donné que je n'ai pas accès aux composants du client!

Donc si quelqu'un aurait une piste pour me débloquer ça serait sympa de me donner un coup de main!

Merci d'avance!

Neophyte

Autres pages sur : client serveur

16 Décembre 2009 23:58:56

personne? :-(
m
0
l
17 Décembre 2009 18:28:58

Faire comme les autres ? Soit tu instancies une connexion direct avec tous les problèmes que cela induit ! Enfin, à vérifier mais je crois bien que c'est la solution qu'utilise Microsoft dans MSN pour le transfert de fichier. d'où l'intérêt d'envoyer un fichier pour récupérer l'IP d'une personne.

Sinon fait proxy.

Bon, après tout ce que tu cherches à faire c'est faire un protocole donc tu n'a qu'à regarder LE protocole ouvert de messagerie instantanée XMPP et voir comment ils ont implémenté le transfert de thumbnails. Accès au spec XMPP puis Transfert bit à bit.

En gros si tu n'es pas fan, que tu dev un peu à l'arrache et qu'il s'agit de petit fichier. Fait un encodage en base64 d'un coté puis de l'autre tu fais un décodage. Tu stocks le résultat de ton base64 comme un message un peu basique et emballé c'est pesé. Par contre ton serveur va devoir pas mal avoir de bande passante.
m
0
l
Contenus similaires
a b L Programmation
17 Décembre 2009 20:43:23

Dans l'implémentation du protocole applicatif, tu peux aussi faire 2 canaux pour gérer les deux sens.
m
0
l
19 Décembre 2009 13:33:35

SiM07 a dit :
Faire comme les autres ? Soit tu instancies une connexion direct avec tous les problèmes que cela induit ! Enfin, à vérifier mais je crois bien que c'est la solution qu'utilise Microsoft dans MSN pour le transfert de fichier. d'où l'intérêt d'envoyer un fichier pour récupérer l'IP d'une personne.

Sinon fait proxy.

Bon, après tout ce que tu cherches à faire c'est faire un protocole donc tu n'a qu'à regarder LE protocole ouvert de messagerie instantanée XMPP et voir comment ils ont implémenté le transfert de thumbnails. Accès au spec XMPP puis Transfert bit à bit.

En gros si tu n'es pas fan, que tu dev un peu à l'arrache et qu'il s'agit de petit fichier. Fait un encodage en base64 d'un coté puis de l'autre tu fais un décodage. Tu stocks le résultat de ton base64 comme un message un peu basique et emballé c'est pesé. Par contre ton serveur va devoir pas mal avoir de bande passante.


Merci pour ta réponse. Je vais jeter un coup d'oeil sur XMPP.

Par contre le projet final ne sera pas juste un affichage d'un élément sur les clients. Là c'est juste une étape pour tester comment ça fonctionne et me familiariser avec les protocoles de communications.

En faite, mon projet final n'est autre qu'un poker en réseau, où les clients se connectent au serveur et celui-ci leur permet de chatter et gère la partie de poker qu'il va transmettre aux clients connectés. Donc je ne pense pas que l'encodage soit la bonne solution.
m
0
l
19 Décembre 2009 13:40:02

CRicky a dit :
Dans l'implémentation du protocole applicatif, tu peux aussi faire 2 canaux pour gérer les deux sens.


Je suis d'accord mais le problème persistera quand même!
Car ok les clients passent par un canal, ils reçoivent la réponse du serveur et après affiche le message dans leur textbox.

Mais maintenant, le serveur passe par un autre canal pour rejoindre les clients, il est connecté très bien mais, maintenant comment il fait pour envoyer ses données dans un composant du programme client?? C'est à ce niveau que je ne comprend pas bien...
m
0
l
a b L Programmation
19 Décembre 2009 18:59:26

Je ne vois pas le problème.

Tu peux aussi faire une commande client FETCH qui fait une demande au serveur qui répond une commande SERV_RESP embarquant une commande du serveur ou des données. Après côté client, tu peux lancer la commande fetch toutes les secondes pour se synchroniser avec le serveur à la seconde.
Bref, à toi de définir ton protocole applicatif comme tu l'entends.
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS