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

 Delphi Discussion :

probleme indy9 client bug


Sujet :

Delphi

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 43
    Points : 26
    Points
    26
    Par défaut probleme indy9 client bug
    bnojour tous le monde.
    je suis entreind de code une application de partage ,clien / server avec composont indy9 du delphi7.
    mon probleme c'est que mon client bug apré 2 ou 3 seconde apré etre conecter au server , voici le code complet.
    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
     
    procedure TForm1.SpeedButton1Click(Sender: TObject);//boutton conect
    begin
      if
         (edServer.Text <> '')   and
         SpeedButton1.Down then
        begin
          IdTCPClient1.Host := edServer.Text;
          IdTCPClient1.Port := sePort.Value;
          if SpeedButton1.Down then
            IdTCPClient1.Connect;
     
        end
      else
     
    end;
    un composont de conection port com
    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
     
    procedure TForm1.Button2Click(Sender: TObject);
    begin
         if button2.Caption='open' then
         begin
         comport1.Port:=combox.Text;
         comport1.Connected:=true;
         button2.Caption:='close';
         timer1.Enabled:=true;
         end
         else
         if button2.Caption='close' then
         begin
         comport1.Close;
          button2.Caption:='open';
         end;
     
    end;
    pour lire les donner venon du port com
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
    var  chaine,test:string;
    begin
      comport1.ReadStr(chaine,count);
     
      test:=(chaine);
      IdTCPClient1.Write(test);//envoi vers le server
     
      end;
    un timer pour les donner recu par le server
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TForm1.Timer1Timer(Sender: TObject);
     var  msg:string;
    begin
      if  IdTcpClient1.Connected then
     
       begin
        msg:= IdTCPClient1.ReadString(40);
        comport1.WriteStr(msg) ;
        memo1.Lines.Add(stringtohex(msg)) ;
    end;
    end;
    je voi pas pour quoi ca bug !!
    merci.

  2. #2
    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
    Ca bug comment ?
    Si tu ne détailles pas plus, personne risque de te répondre

    Sinon pour la récupération des données il n'y a pas besoin d'un timer, le composant doit avoir normalement un évènement qui gère cela
    Modérateur Delphi

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

  3. #3
    Membre chevronné Avatar de chaplin
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 215
    Points : 1 819
    Points
    1 819
    Par défaut
    Je constate deux événements qui utilisent des accès synchrones à la fois sur le port com et sur les sockets (indy), dans ces conditions le blocage arrive rapidement.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par Rayek Voir le message
    Ca bug comment ?
    Si tu ne détailles pas plus, personne risque de te répondre

    Sinon pour la récupération des données il n'y a pas besoin d'un timer, le composant doit avoir normalement un évènement qui gère cela
    le client envoi un packet au serveur le serveur repend 1 seul fois ou deux
    mai apré le client plante ,pour la reception jai pas trouver levenemnt de reception . je pence que le bug viens du timer forcement mai quele evenemnt de reception?

  5. #5
    Membre chevronné Avatar de chaplin
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 215
    Points : 1 819
    Points
    1 819
    Par défaut
    L'appel de ReadString est executé en mode synchrone. Le client envoie une commande au serveur qui répond aussitôt en transmettant une chaîne string en retour. Autrement dit l'application serveur doit être configuré pour répondre aux requêtes de l'application cliente.

    Il faut considérer la méthode ReadString comme une fonction qui prendrait un argument en entré et renvoie une chaîne string, sauf que cette valeur en retour provient d'un appel distant au serveur d'application dont la réponse dépend de l'argument en entré. Il s'agit donc d'un appel bloquant.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Novembre 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par chaplin Voir le message
    L'appel de ReadString est executé en mode synchrone. Le client envoie une commande au serveur qui répond aussitôt en transmettant une chaîne string en retour. Autrement dit l'application serveur doit être configuré pour répondre aux requêtes de l'application cliente.

    Il faut considérer la méthode ReadString comme une fonction qui prendrait un argument en entré et renvoie une chaîne string, sauf que cette valeur en retour provient d'un appel distant au serveur d'application dont la réponse dépend de l'argument en entré. Il s'agit donc d'un appel bloquant.
    merci ami pour le freez il faller de chercher un peu et jai trouver Idantifreez
    pour a lecture jai crée un thread de lecture et le tour est joué alor je mi resolu ce poste.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/06/2007, 10h45
  2. Probleme installation client oracle 8i
    Par griese dans le forum Oracle
    Réponses: 1
    Dernier message: 21/11/2006, 10h25
  3. Probleme connexion Client 10g --> Serveur 8.1.7.4
    Par droopyy dans le forum Oracle
    Réponses: 9
    Dernier message: 24/03/2006, 16h05
  4. 9.2 Probleme Install Client
    Par lunab54 dans le forum Installation
    Réponses: 1
    Dernier message: 10/01/2006, 19h23
  5. Problème des clients windows après installation bind
    Par tanjonaravelson dans le forum Réseau
    Réponses: 3
    Dernier message: 06/07/2005, 09h28

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