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 :

Utilisation de TIdCompressionIntercept


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 60
    Par défaut Utilisation de TIdCompressionIntercept
    Bonjour,

    J'aimerais utiliser le composant TIdCompressionIntercept de la librairie Indy 10 (sous BDS 2006) pour transférer des fichers entre plusieurs postes, via IdTCPServer et TIdTCPClient.

    J'ai vu dans la FAQ un article très simple, mais qui semble fonctionner en Delphi 7, mais pas en 2006.
    Même en triturant le code dans tous les sens, sans oublier de joindre les .obj de la zlib, comme indiqué dans la doc d'Indy ; j'ai toujours une exception Connection Closed Gracefully !!

    sans la compression, inutile de vous dire que ça fonctionne....

    quelqu'un aurait-t-il une idée ? ou autre chose à me proposer ?

    Merci

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 933
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 933
    Billets dans le blog
    6
    Par défaut
    es-tu certain que cette exception n'est pas levée uniquement quand tu lances à partir de l'IDE, et non en fonctionnement réel ?
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 60
    Par défaut
    bonjour,

    j'ai la même exception en fonctionnement normal

    voilà le code du serveur:

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    procedure TServiceServer.TCPServerConnect(AContext: TIdContext);
    begin
      with AContext.Connection.IOHandler do
      begin
        Intercept := TIdCompressionIntercept.Create(nil); 
        TIdCompressionIntercept(Intercept).CompressionLevel := 9; 
      end;
    end;
     
    procedure TServiceServer.TCPServerDisconnect(AContext: TIdContext);
    begin
      with AContext.Connection.IOHandler do
      begin
        if Assigned(Intercept) then
        begin
          Intercept.Free;
          Intercept := nil;
        end;
      end;
    end;
     
    procedure TServiceServer.TCPServerExecute(AContext: TIdContext);
    var
      Cmd : string;
    begin
      Cmd := AContext.Connection.IOHandler.ReadLn;
      ShowMessage('message reçu :'+Cmd);
      AContext.Connection.IOHandler.WriteLn('OK');
    end;
    et le code client:

    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
    22
    23
    24
    25
    26
    27
     
    procedure TFormAdmin.Button1Click(Sender: TObject);
    var
      Res : string;
    begin
      with TCPClient do
      begin
        Host := '192.168.72.9';
        Port := 9020;
        Connect;
        with IOHandler do
        begin
          IOHandler.Intercept := TIdCompressionIntercept.Create(nil); 
          TIdCompressionIntercept(IOHandler.Intercept).CompressionLevel := 9;
          WriteLn('TEST');
          Res := ReadLn;
          if Assigned(Intercept) then
          begin
            Intercept.Free;
            Intercept := nil;
          end;
        end;
        Disconnect;
     
      end;
      ShowMessage(Res);
    end;
    Merci pour vos commentaires

    rappel: sans utiliser le compresseur, ça marche.

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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