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

Composants VCL Delphi Discussion :

Programmer convenablement un serveur Socket avec Indy


Sujet :

Composants VCL Delphi

  1. #1
    bruce-willis
    Invité(e)
    Par défaut Programmer convenablement un serveur Socket avec Indy
    Salut tout le monde !

    Ce que j'aimerais apprendre c'est comment manier les threads de chaque client qui se connectera au serveur issu de TIdTCPServer
    Voici un code que j'ai écrit qui montre que je ne sais pas que faire des TIdPeerThread créé à chaque client qui se connecte: il s'agit de broadcaster à tous les clients un message qu'un client a envoyé
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    void __fastcall TServer1Form::TcpServerConnect(TIdPeerThread *AThread)
    {
            nThreadNumber++;
            tClThread[nThreadNumber] = AThread;
            AThread->Connection->WriteLn("Connexion avec le serveur OK ...");
    }
    //---------------------------------------------------------------------------
    void __fastcall TServer1Form::TCPServerExecute(TIdPeerThread *AThread)
    {
            AnsiString strTmp;
            int i, j;
            while (AThread->Connection->Connected())
            {
                    strTmp = AThread->Connection->ReadLn();
                    if (strTmp[0] == '$')
                    {
                            tClThread[i]->Connection->WriteLn(strTmp);
                    }
            }
    }
    Que faire des AThread ?
    En effet, ce code est du C++ Builder qui est proche de Delphi
    Dernière modification par evarisnea ; 01/07/2008 à 14h52. Motif: balise CODE en CODE=C++

  2. #2
    bruce-willis
    Invité(e)
    Par défaut
    Est-ce que TCPServerExecute() est l'équivalent de Execute() des classes TThread ? c'est à dire qu'un TCPServerExecute sera affecté à chaque client, le serveur sait se dédoubler automatiquement en threads pour traiter chaque client (en composant INDY)

  3. #3
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Normalement oui.

    Chaque client aura son TCPServerExecute.
    Fait une recherche sur le net, il doit y avoir des exemples de chat fait avec le TIdTCPServer et TIdTCPClient
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

Discussions similaires

  1. programmation de mon serveur avec socket en C++
    Par dadex dans le forum Programmation système
    Réponses: 2
    Dernier message: 28/08/2015, 22h40
  2. Création d'un serveur FTP avec Indy et Delphi
    Par ram-0000 dans le forum Réseaux
    Réponses: 0
    Dernier message: 03/04/2013, 11h46
  3. programmation de mon serveur avec socket en C++
    Par dadex dans le forum Développement
    Réponses: 1
    Dernier message: 26/01/2013, 12h54
  4. Serveur/Client avec Indy 10
    Par topgun1223 dans le forum Web & réseau
    Réponses: 2
    Dernier message: 24/04/2009, 18h18
  5. Comment créer un serveur FTP avec Indy ?
    Par Matt2094 dans le forum Delphi
    Réponses: 2
    Dernier message: 03/06/2006, 12h23

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