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

Python Discussion :

Rediriger le flux de sortie vers un socket TCP


Sujet :

Python

  1. #1
    Membre actif Avatar de Tornade8912
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 83
    Par défaut Rediriger le flux de sortie vers un socket TCP
    Bonjour,

    Depuis quelques temps, je fais face à un problème que je n'arrive pas à résoudre. En tout cas je voudrais savoir si ce que je veux faire est réalisable. Je voudrai que le flux de sortie standard soit redirigé vers un socket TCP.

    C'est à dire que quand on fait un :

    Il faudrait que ça soit comme si on faisait un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    socket.send("message")
    Je sais que le "sys.stdout" permet de le faire avec des fichiers. En faisant un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    file = open('file.txt', 'w+')
    sys.stdout = file
    En clair il me faudrait quelque chose de similaire à ce système. Je vous remercie d'avance pour les réponses que vous pourriez m'apporter

    Cordialement.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 743
    Par défaut
    Salut,

    Vous pourriez regardez ce que fait socket.makefile - qui devrait fonctionner au moins sur Linux -.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre actif Avatar de Tornade8912
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 83
    Par défaut
    Bon, je viens de mettre cette méthode dans mon code mais maintenant j'ai une erreur :/ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    clientSocket, adress = serverSocket.accept()
    socketFile = clientSocket.makefile('w+')
    sys.stdout = socketFile
    print('message')
    Ensuite voilà ce qu'il me sort :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Traceback (most recent call last):
      File "server.py", line 9, in <module>
        socketFile = clientSocket.makefile('w+')
      File "<string>", line 3, in makefile
    io.UnsupportedOperation: File or stream is not seekable.
    Je ne comprends pas, ai-je mal fait quelque chose ?

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 743
    Par défaut
    Citation Envoyé par Tornade8912 Voir le message
    Je ne comprends pas, ai-je mal fait quelque chose ?
    Virez le '+' et utilisez une version de Python décente.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre actif Avatar de Tornade8912
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 83
    Par défaut
    J'ai enlevé le '+', désormais je n'ai plus d'erreur, mais côté client je ne reçois rien... J'utilise Python 3.4.2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    socketFile = clientSocket.makefile('w')
    sys.stdout = socketFile
    print('message')

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 743
    Par défaut
    Salut,

    Avec Python 3.4, le message d'erreur est "ValueError: invalid mode %r (only r, w, b allowed)" - ce qui est bien plus explicite..

    Pour le reste, c'est un problème de "buffering": un .flush résoudra le problème.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Rediriger le flux de sortie vers le néant
    Par oodini dans le forum C++
    Réponses: 14
    Dernier message: 07/10/2011, 18h51
  2. Rediriger le flux de log vers JSF
    Par pilate dans le forum Logging
    Réponses: 5
    Dernier message: 07/02/2010, 17h17
  3. rediriger printf flux de sortie
    Par kaiser92 dans le forum Visual C++
    Réponses: 1
    Dernier message: 03/02/2010, 15h34
  4. Encode du flux de sortie d'un socket
    Par Kitiz dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 29/10/2009, 15h42
  5. Comment rediriger la sortie vers /dev/null
    Par dclink dans le forum C
    Réponses: 4
    Dernier message: 24/06/2003, 18h23

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