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

Lazarus Pascal Discussion :

Compteur d'octets reçus et émis sur Internet


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut Compteur d'octets reçus et émis sur Internet
    Bonjour à toutes et à tous,

    Je souhaite faire un petit programme avec Lazarus et les composants Indy qui me comptabiliserait le nombre d'octets que je reçois et que j’émets sur le Web. Ce petit programme tournerait en tâche de fond et ne devrait pas me réduire ma vitesse de transmission de plus de 20 % par exemple.

    Est-ce possible et quels composants Indy choisir ?

    Merci pour votre aide.

    Pierre

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour Pierre,

    dans une application Lazarus, on peut compter les octets émis et reçus... par l'application. Cela fonctionne en ftp (IdFTP, IdComponent, IdAntiFreeze) autant que je me souvienne avec les procedures IdFTPWork et IdFTPWorkBegin mais je n'en suis plus très sûr (du nom des procedures). Pour le HTTP cela doit être pareil...

    Vérification faite, extrait d'un vieux code
    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
    procedure TForm1.IdFTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
      AWorkCountMax: Int64);
    begin
     if AWorkMode=wmRead then begin
       StatusBar1.SimpleText := 'Chargement en cours. Ne pas interrompre.';
       StatusBar1.Refresh;
     end;
    end;
     
    procedure TForm1.IdFTP1Work(ASender: TObject; AWorkMode: TWorkMode;
      AWorkCount: Int64);
    var
      nBuffer64 : int64;
    begin
      nBuffer64 := AWorkCount;
      Label1.Caption:= FormatTaille(nBuffer64,True)+'/'+FormatTaille(FileSize64,True);
      label1.Refresh;
      ProgressBar1.Position:=nBuffer64;
      ProgressBar1.Refresh;
    end;
    Il est possible de différencier le signal émis du signal reçu (aWok). J'utilise plutôt Synapse mais je dispose du paquet 10.5.8 (4797) de Indy qui fonctionne bien avec Lazarus sous Windows mais mal sous Linux... J'ai dû choisir ce paquet pour pourvoir envoyer avec Indy des mails au format HTML. En réalité c'est quand j'ai testé Delphi que je me suis aperçu qu'on avait un retard fou avec notre officielle 10.2.0.3. En cherchant bien, j'ai récupéré des SVN... J'ai classé cela dans un dossier (avec l'adresse des SVN, le problème Nux avec les liens..) mais pas sur l'appareil dont je me sers tout de suite, appareil sur lequel est tout de même installé le paquet en question (Win7-32 : Lazarus 1.1-38979 fpc-2.6.1-20121007). Je peux le placer sur mon ftp si besoin est. Mais même avec cette "nouvelle" version plus complète, je me demande quel serait le composant "sniffeur" ?

    Car, je ne sais pas comment compter en dehors d'une application Lazarus. J'imagine 2 principes possibles :
    • "intercepter le signal"... aucune méthode ne me vient à l'idée en Lazarus
    • créer son propre browser... en Lazarus . Là évidemment !!!


    Sinon, de manière plus "fine" (ie alambiquée en utilisant les API ), mais en Delphi, peut-être est-il envisageable de "s'attaquer directement" aux flux qui passent par les ports HTTP, FTP... Faut voir avec les Cousins !

    Cordialement. Gilles
    Dernière modification par Invité ; 15/10/2012 à 11h17.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Rebonjour Pierre,

    C'est bien du côté de Delphi qu'il faut aller voir. Je me suis rappelé avoir vu un code http://www.felix-colibri.com/papers/...p_sniffer.html qui semblait vaguement se rapprocher de votre problème... Pendant une petite pause, je l'ai retrouvé et relu très rapidement et partiellement. Je n'ai pas été très loin : j'ai vu des winAPI... et cela me fait fuir : j'y suis allergique . Pour ce que j'en ai (peu) compris, le code semble "associé" à une carte modem placée dans le PC ou liée au PC (ce qui ne correspond certainement pas à votre problème). Par contre, il est fait référence à l'interception des protocoles TCP IP. Là, on se rapproche.

    Donc, il est clair que le code n'est pas transposable à ce que vous cherchez mais que son objectif est parent. Ce qui a attiré mon attention dans l'article, c'est qu'il est fait référence à ICS à la place de WinPcap ("ICS component suite home, where the "snowing" capture package can still be found")... Or, sans l'avoir jamais utilisé, je crois que ce paquet est au moins partiellement compatible avec Lazarus (overbyte ics lazarus). Peut-être un début de piste "potentielle" ?

    Cordialement. Gilles
    Dernière modification par Invité ; 17/10/2012 à 17h15.

  4. #4
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 139
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 139
    Par défaut
    Bonsoir,

    Citation Envoyé par selzig Voir le message
    Rebonjour Pierre,

    C'est bien du côté de Delphi qu'il faut aller voir. (...)
    Oui : il y a quelques années j'ai étudié avec D7 un "Network Traffic Monitor" développé par Zarko Gajic et Dirk Claessens, à voir ici.

    Mais je n'ai jamais essayé de le porter sous Lazarus (si l'IDE [0.9.30] était moins capricieux au niveau du copier/coller, ça serait tentable ; mais là, je souffre trop -- Est-ce que ça s'est amélioré avec la 1.0 ?)

  5. #5
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut
    Merci Jipété pour ce lien. J'ai téléchargé cette application et je l'ai compilée et lancée avec mon Delphi 6 : tout a fonctionné impec du premier coup .

    Pour autant, cette application ne fonctionne que sous Windows et de ce fait, je ne vois pas l'utilité (pour moi) de la transposer en Lazarus.

    Merci encore.

    Pierre

Discussions similaires

  1. [C#] Récupérer son adresse IP sur Internet
    Par Thomas Lebrun dans le forum Windows Forms
    Réponses: 11
    Dernier message: 28/07/2014, 16h19
  2. Mes scripts ne sont pas mis à jour sur internet explorer
    Par marcov dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 18/12/2011, 15h36
  3. Mesures des octets reçus ou émis avec une FreeBox
    Par Pasqualini dans le forum C++Builder
    Réponses: 4
    Dernier message: 02/08/2005, 14h02
  4. visibilite de mon serveur sur internet
    Par jabaka dans le forum Apache
    Réponses: 9
    Dernier message: 03/05/2004, 14h22
  5. Réponses: 5
    Dernier message: 27/08/2003, 11h45

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