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

Shell et commandes POSIX Discussion :

Problème de lecture temps-réel à cause d'un pipe


Sujet :

Shell et commandes POSIX

  1. #1
    Membre régulier Avatar de theclem35
    Homme Profil pro
    Technicien Réseaux & Télécommunications
    Inscrit en
    Décembre 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien Réseaux & Télécommunications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 148
    Points : 86
    Points
    86
    Par défaut Problème de lecture temps-réel à cause d'un pipe
    Salut à tous,

    Je suis confronté à un soucis un peu gênant.
    J'utilise tshark (le wireshark en lignes de commandes), afin de lire des paquets sur mon interface eth0 et les afficher dans ma console.

    Cela fonctionne très bien et en temps réel avec la commande suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tshark -i $1 -R "text && data-text-lines && imf" -T fields -e imf.from -e imf.to -e imf.subject -e text
    Par contre, je dois effectuer une mise en forme du paquet, car la il arrive brut. J'envoie donc le résultat de tshark dans un pipe vers sed avec la commande suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tshark -i $1 -R "text && data-text-lines && imf" -T fields -e imf.from -e imf.to -e imf.subject -e text | sed -f args.sed
    Cela fonctionne bien, mais m'engendre un problème désagréable.
    En effet, alors qu'un paquet est capturé par tshark, il n'est pas affiché tout de suite (donc pas encore traité par sed je suppose). Il faut que tshark attende un deuxième paquet sur mon interface pour m'afficher le premier.

    Cela est certainement du au pipe, car si je fais l'expérience de remettre un 2ème pipe derrière, et bien il faut attendre de capter 3 paquets pour lire le 1er sur ma console.

    Je pense que lorsqu'un paquet est capturé, il doit être bloqué dans le pipe dans une sorte de buffer. Ma question est simple : comment garder ma lecture et mettre en forme mes paquets en temps-réel ?

    Merci!

  2. #2
    Membre régulier Avatar de theclem35
    Homme Profil pro
    Technicien Réseaux & Télécommunications
    Inscrit en
    Décembre 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien Réseaux & Télécommunications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 148
    Points : 86
    Points
    86
    Par défaut
    L'option -t de Tshark permet de sortir le flux sans bufferisation.

    C'est donc résolu

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 16/02/2010, 23h41
  2. lecture en temp réel sur spectre
    Par diaso dans le forum C++
    Réponses: 0
    Dernier message: 02/09/2009, 17h54
  3. Problème de temps réel
    Par mansoulc dans le forum LabVIEW
    Réponses: 0
    Dernier message: 28/03/2009, 12h07
  4. Réponses: 2
    Dernier message: 02/11/2006, 21h35
  5. Réponses: 19
    Dernier message: 20/12/2005, 10h03

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