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 :

Utilisation de TIdTCPServer (Indy version 9)


Sujet :

Web & réseau Delphi

  1. #1
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 10
    Par défaut Utilisation de TIdTCPServer (Indy version 9)
    Bonjour,
    Même sujet que mon précédent post mais problème différent : Je développe actuellement une application qui permet de lire et modifier des paramètres dans une carte électronique en communiquant à travers le réseau. A la mise sous tension, la carte tente de se connecter à un serveur TCP sur le port 80. Une fois la connexion établie, le dialogue de lecture écriture des paramètres commence…
    Après avoir essayé le composant TWSocketServer de ICS (voir mon précédent post) j’ai essayé le composant TIdTCPServer (Indy version 9) qui me pose aussi des problèmes :
    Je n’arrive pas à lire les trames que m’envoie la carte. La connexion sur le port est bien établie, j’arrive à envoyer une trame vers le client (la carte) mais quand celui-ci répond je ne sais pas comment lire cette réponse (en utilisant Wireshark je vois bien la trame de la carte passer sur le réseau). Voici le code de l’évènement OnExecute, où la propriété AThread.Connection.InputBuffer.Size reste désespérément à zéro et la ligne ReadBuffer n'est donc pas exécutée :
    Code : 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
    21
     
    procedure TMP2Comm.IdTcpServerExecute(AThread: TIdPeerThread);
    var
      Data: Array [0..SIZEBUFFERTCP] of byte;
      Size : integer;
    begin
      if not AThread.Terminated and AThread.Connection.Connected then
      begin
        Size := 0;
        if AThread.Connection.IOHandler.Readable(0) then
          Size := AThread.Connection.InputBuffer.Size;
        //Size toujours = 0 !?
        if Size > 0 then
        begin
          AThread.Connection.ReadBuffer(Data, Size);
     
          FMP2Manager.AddToBuffer(Data, Size);
          //traitement…
        end;
      end;
    end;
    Le code de l’initialisation du serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        FIdTCPServer.DefaultPort := StrToInt(FPort); //FPort = ‘80’
        FIdTCPServer.Active := True;
    J'ai essayé différents exemples que j'ai trouvé mais avec les différences de version entre les 8, 9 et 10 qui circulent c'est un peu confus.
    Merci d'avance si vous avez une idée.
    @+
    Maël

  2. #2
    Membre éclairé
    Avatar de castorcharly
    Homme Profil pro
    Chef de projet
    Inscrit en
    Février 2009
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2009
    Messages : 423
    Par défaut
    J'utilise les indy 10 et je sais qu'il y a pas mal de différence avec les 9.

    Mais ce que je ferais en premier c'est de faire un client qui simule tes envoies de trame, pour vérifier que ton serveur les reçois et sur quels events tu peux les récupérer.

    Enfi vu d'ici, c'est un peu confus, désolé de ne pouvoir faire mieux.

Discussions similaires

  1. [Vxi] Utilisation invite - Sauvegarde Excel - Version Java
    Par tomanu dans le forum Webi
    Réponses: 10
    Dernier message: 28/10/2010, 11h22
  2. Comment utiliser et configurer la version embedded du serveur mySQL ?
    Par neodelphi2007 dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/06/2009, 10h57
  3. utilisation de crystal Report version 7
    Par lepeule dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/07/2008, 22h24
  4. Utilisation des composants Indy
    Par pduceux dans le forum Delphi
    Réponses: 1
    Dernier message: 11/05/2007, 20h45
  5. Réponses: 6
    Dernier message: 28/04/2006, 10h56

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