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 :

[Socket] Comment faire du multi-client ?


Sujet :

Web & réseau Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 18
    Points : 17
    Points
    17
    Par défaut [Socket] Comment faire du multi-client ?
    Salut,
    je voudrait savoir comment on fais pour envoyer un message a un client spécifique dans le cas ou plusieur client sont connecter au server, prennons par exemple : le client1 envoie le message 'auth' le serveur lui repond au autre message....comment faire cela avec TClientSocket et TServerSocket ou un autre type de socket je suit ouvert...?

  2. #2
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Citation Envoyé par eric30eric
    TClientSocket et TServerSocket
    Tu utilises ces vieilles babioles ? Utilise plutôt les compos Indy, open source et bien plus fonctionnels.
    Avec ça tu ne devrais pas avoir de problème.
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  3. #3
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    A chaques connections sockets, moi je stockais mes sockets dans un array of TClient (un record de Login : String et Socket : TCustomWinSocket). Comme ca je pouvais retrouver le socket de dialogue avec le client en parcouraint les logins.
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    resalut,
    je ne comprend pas trop ton exemple, peut tu me donner un petit bout de code??

  5. #5
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Evenement "OnClientConnect" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    procedure TForm1.ServerSocketClientConnect(Sender:TObject;Socket:TCustomWinSocket);
    Le parametre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Socket :  TCustomWinSocket
    pointe vers le socket client.

    Pour en garder une trace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Var Clients = Array of TCustomWinSocket;
     
    procedure TForm1.ServerSocketClientConnect(Sender:TObject;Socket:TCustomWinSocket);
    Begin
    Size := Length(Clients);
    SetLength(Clients, Size+1);
    Clients[Size] := Socket;
    End;
    Apres pour effectuer une recherche, tu peux parcourir le tableau client, les objets socket possedent des proprietees "host", "adress", "handle", "port", etc ... qui te permettent de retrouver eventuelement qui est qui.

    Ou alors complexifie le tableau CLient comme un array of TClient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    TClient = Record
    Login : String;
    ID : Integer;
    ..
    Socket : TCustomWinSocket;
    End;
    Pour avoir plus d'infos sur un client.
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  6. #6
    Membre à l'essai
    Inscrit en
    Janvier 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    merci Clorish, sa ma pris un peu de temps a comprendre mais j'y suit arriver

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

Discussions similaires

  1. [WD14] comment faire le serveur/client
    Par alhco1 dans le forum WinDev
    Réponses: 1
    Dernier message: 01/02/2011, 20h04
  2. Réponses: 4
    Dernier message: 11/11/2010, 23h30
  3. comment faire avec multi filtres
    Par tngtng dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 21/03/2010, 11h01
  4. [Client] comment faire du Multi Home ?
    Par sboober dans le forum Débuter
    Réponses: 1
    Dernier message: 11/07/2008, 10h15
  5. Comment faire du multi thread en php?
    Par sirbaldur dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 12/01/2007, 17h56

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