Envoyer un message du serveur vers un client

houcem001 Messages postés 14 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 26 décembre 2009 - 22 févr. 2009 à 04:39
josephwrida Messages postés 2 Date d'inscription jeudi 5 mai 2011 Statut Membre Dernière intervention 7 mai 2011 - 6 mai 2011 à 15:16
Salut
j'ai un serveur et des clients qui connectent en utilisant le protocole TCP.
Voici au dessous du partie du code concernant la connexion du serveur.
mon probleme que je peux envoyer des messages des clients vers le serveur mais le serveur peut envoyer qu'à au 1er client connecté.
donc je veux envoyer des messages du serveur vers un client en utilisant son adresse IP comme paramètre.
//
public static void connecter(int port)
{
TcpListener ecoute = null;
try
{
ecoute = new TcpListener(IPAddress.Any, port);
ecoute.Start();
TcpClient tcpclient = null;
while (true)
{tcpclient = ecoute.AcceptTcpClient();
ThreadPool.QueueUserWorkItem(lire, new Clientt() {CanalTcp = tcpclient});
ThreadPool.QueueUserWorkItem(ecrire, new Clientt() {CanalTcp = tcpclient});
}.. //j'ai utilisé StreamReader et StreamWriter dans les methodes lire et ecrire

2 réponses

RougailSaucisse Messages postés 118 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 6 décembre 2010 1
22 févr. 2009 à 05:25
A chaque fois que tu recois un nouveau "client", ajoute le a une liste. a chaque fois qu'un client stop, retire le de la liste.
Puis pour envoyer le message a un client specifique tu peux imaginer une fonction telle que:

List<Socket> mesClients = new List<Socket>();
[..]
//code ou tu ajoutes tes clients a ta liste a chaque connexion

protected Socket SendMessageToClient(string ip)
{
 //on retourne le client de la liste dont l'adresse est egale à l'ip passé en parametre
  return mesClients .SingleOrDefault(p => ((IPEndPoint)p.RemoteEndPoint).Address.ToString() == ip);
}

Socket c = this.SendMessageToClient("192.168.0.2");
c.Send()

hum je ne garantie absolument pas la validité de ce code ni même s'il compile, mais c'est plus pour l'exemple que pour la réalisation.
0
josephwrida Messages postés 2 Date d'inscription jeudi 5 mai 2011 Statut Membre Dernière intervention 7 mai 2011
6 mai 2011 à 15:16
SVP ,comment envoyer un message client et aussi serveur par socket en VB
0
Rejoignez-nous