IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web & réseau Delphi Discussion :

[ServerSocket] Envoyer un message vers un client


Sujet :

Web & réseau Delphi

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 133
    Points : 113
    Points
    113
    Par défaut [ServerSocket] Envoyer un message vers un client
    Bonjour, j'ai une question qui peut paraitre stupide mais je n'ai pas trouvé comment on fait pour envoyer un message vers un client connecté sur le server.

    SendText ne s'utilise que si l'on connait le client, par exemple dans la procedure OnClientRead, il y a la variable Socket, et je fais Socket.SendText(s) mais si je veux envoyer un message à n'importe que moment ??

    Mon but est d'envoyer un meme message à tous les clients connectés à mon server, alors dans la procedure OnClientConnect, je récupère les IP des clients dans un tableau dynamique, ca pourrait peut etre servir pour ce que je veux faire ?

    Merci de m'aider

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    Il faut que tu boucles un SendText() pour tous tes clients.

    J'essaie de te retrouver une portion de code qui traine dans un projet en stand-by

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    J'ai fait plus vite que prévu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        if (Server0.Socket.ActiveConnections > 0) then
        begin
            for i := 0 to Server0.Socket.ActiveConnections - 1 do
            begin
                //si le texte reçu vient d'un pc different de celui en cours, lui envoyer
                if Socket.RemoteAddress <> Server0.Socket.Connections[i].RemoteAddress then
                    Server0.Socket.Connections[i].SendText(Reception);
            end;
        end;
    Voilà le code tel qu'il est actuellement dans un de mes projets...

  4. #4
    Membre régulier

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 133
    Points : 113
    Points
    113
    Par défaut
    merci c'est ce que je cherchais ! tu me sauve la vie !!
    juste un détail :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for i := 0 to Server0.Socket.ActiveConnections - 1 do 
            begin 
                //si le texte reçu vient d'un pc different de celui en cours, lui envoyer 
                if Socket.RemoteAddress <> Server0.Socket.Connections[i].RemoteAddress then 
                    Server0.Socket.Connections[i].SendText(Reception); 
            end;
    ceci devrait suffire, ton if ne sert à rien.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    Sorti du contexte, c'est vrai que le test n'a aucun sens.

    Cependant j'effectue une tâche différente s'il n'y a aucun client donc...

    N'oublie pas le "Résolu"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/11/2010, 20h06
  2. Comment envoyer un flux vers le client
    Par pracede2005 dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 05/11/2009, 23h00
  3. comment envoyer un fichier d'un client vers un serveur
    Par nad30 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 22/05/2007, 13h55
  4. Réponses: 2
    Dernier message: 25/06/2006, 13h14
  5. Réponses: 6
    Dernier message: 22/09/2005, 10h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo