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

Réseau/Web Python Discussion :

message reçu incomplet


Sujet :

Réseau/Web Python

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mai 2011
    Messages : 177
    Points : 50
    Points
    50
    Par défaut message reçu incomplet
    quand j'envoi un message volumineux(fichier texte),il est envoyé mais le problème est que le code arrivé à destination n'est pas complet.ilya meme pas le 1/2 du code.sachant que ma socket qui envoi le code est celle là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while 1:
                data = conn.recv(1024)
                if not data: return "KO"
                conn.send(BCLinuxTestPage().printOutput())
    et du coté de réception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    try:
        socket.connect((TCP_IP, TCP_PORT))
        socket.send(MESSAGE)
        data = socket.recv(BUFFER_SIZE)
        socket.close()
        print data

    j'ai essayé de mettre la reception en boucle comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    try:
        socket.connect((TCP_IP, TCP_PORT))
        socket.send(MESSAGE)
        while 1:
            data = socket.recv(BUFFER_SIZE)
        socket.close()
        print data
    except:
        print ERROR_MESSAGE
    ou comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    try:
        socket.connect((TCP_IP, TCP_PORT))
        socket.send(MESSAGE)
        while 1:
            data = socket.recv(BUFFER_SIZE)
            socket.close()
        print data
    except:
        print ERROR_MESSAGE
    ça ne marche pas non plus.une erreur survient me disant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    error: [Errno 104] Connection reset by peer

    alors j'ai essayé d'augmenter le buffer size et j'ai mis 5000 à l'envoi ainsi qu'à la réception.
    alors ici le fichier tout entier est arrivé mais le problème est qu'il m'affiche une erreur:
    en plus c'est pas une solution car si le buffer est < à la taille du texte alors le fichier soit incomplet sinon mon fichier sera surchargé(à la fin de mon fichier il lui ajoute à la fin une copie de l'entete ou quelques chose comme ça.


    moi je veux seulement recevoir mon fichier entièrement.de préférence dans une boucle à fin que je ne modifie pas le buffer size

  2. #2
    Membre éprouvé

    Homme Profil pro
    Diverses et multiples
    Inscrit en
    Mai 2008
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Diverses et multiples

    Informations forums :
    Inscription : Mai 2008
    Messages : 662
    Points : 1 273
    Points
    1 273
    Par défaut
    La première boucle est presque bonne, il suffit juste d’ajouter les données lues, au lieu de les remplacer à chaque itérations. Attention aussi à rajouter un contrôle pour terminer la boucle*! Par exemple*:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    try:
        socket.connect((TCP_IP, TCP_PORT))
        socket.send(MESSAGE)
        dt = socket.recv(BUFFER_SIZE)
        while dt:
            data = data + dt
            dt = socket.recv(BUFFER_SIZE)
        socket.close()
        print data
    except:
        print ERROR_MESSAGE

  3. #3
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mai 2011
    Messages : 177
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par mont29 Voir le message
    La première boucle est presque bonne, il suffit juste d’ajouter les données lues, au lieu de les remplacer à chaque itérations. Attention aussi à rajouter un contrôle pour terminer la boucle*! Par exemple*:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    try:
        socket.connect((TCP_IP, TCP_PORT))
        socket.send(MESSAGE)
        dt = socket.recv(BUFFER_SIZE)
        while dt:
            data = data + dt
            dt = socket.recv(BUFFER_SIZE)
        socket.close()
        print data
    except:
        print ERROR_MESSAGE
    merci ça fonctionne et le message est reçu en intégralité mais le problème est que j'ai une portion javascript dans mon fichier envoyé.le problème c'est que cette portion javascript n'est pas exécutée.

    en faite je donne un bref aperçu de la situation:
    j'ai une classe test.py,une classe lib.py et un cgi.
    au niveau de la classe lib ilya une socket qui communique constamment avec le cgi (voir en dessus).et bien la methode envoyé à notre cgi elle contient du code html+Javascript.
    le cgi normalement il doit executé cette page là.le probleme c'est que notre cgi il lance notre page html mais le code JS n'est pas lancé.malgrès que le code JS est correcte et je le lance automatiquement dans le body de la page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <body onload="Launch()">
    function Launch()
            {
              ............
    }

Discussions similaires

  1. Réponses: 6
    Dernier message: 18/05/2010, 12h13
  2. Réponses: 1
    Dernier message: 11/08/2008, 22h09
  3. [IMAP] Comment extraire un message reçu d'un email ?
    Par haphp dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 10/06/2008, 15h20
  4. [1.02] [Zend_Mail] : message reçu avec des =0A
    Par kaboume dans le forum Autres composants
    Réponses: 11
    Dernier message: 02/11/2007, 09h02
  5. message référence incomplete ou rompue(débutant)
    Par shitan dans le forum Access
    Réponses: 5
    Dernier message: 24/01/2007, 16h20

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