Partage
  • Partager sur Facebook
  • Partager sur Twitter

[QST] Transfert de gros fichier en reseau

socket

Sujet résolu
    12 décembre 2011 à 12:43:45

    Bonjour a tous

    J'ai besoin de faire transiter entre deux serveurs distant des archives ZIP.
    Pour ce faire j'utilise des sockets.

    Je n'ai aucun problème pour faire transité des informations 'courte' entre mes serveur.
    Mon problème est comment faire pour récupéré des gros fichiers ?

    Voici la fonction que j'ai commencé a coder (par convention, les transferts de message se font en JSON)
    def getData(self,nomProjet):
            """
            Methode qui permet de recupéré les données demandé
            @param nomProjet: nom du projet latex a recupere
            @return une archive zip contenant toutes les données utile a la compilation
            @return le nom du fichier maitre (celui sur lequelle on lnce la compialtion) 
            """
            self._sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            self._sock.connect((self._adresse, self._port))
            self._sock.send(nomProjet)
            
            archive=self._sock.recv(1024)#ici
            
            
            message={"message":"recv ok"}
            messageJson=json.dumps(message)
            messageJson=messageJson.encode()
            self._sock.send(messageJson)
            
            fichierMaitre=self._sock.recv(1024)
            
            self._sock.close()
            
            
            return archive,fichierMaitre
    


    Dans mon code, je ne sais pas comment faire pour recevoir l'archive complete (mon recv ne prend que 1024)

    Mon problème est t'il suffisamment clair ?
    Avez vous une idée de comment procéder pour ce transfert ?

    Je vous remercie d'avance pour votre aide :)
    • Partager sur Facebook
    • Partager sur Twitter
    Le jour où Microsoft fera des choses qui ne plantent pas, ça sera des clous ...
      12 décembre 2011 à 19:45:54

      def getData(self,nomProjet):
              """
              Methode qui permet de recupéré les données demandé
              @param nomProjet: nom du projet latex a recupere
              @return une archive zip contenant toutes les données utile a la compilation
              @return le nom du fichier maitre (celui sur lequelle on lnce la compialtion) 
              """
              self._sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
              self._sock.connect((self._adresse, self._port))
              self._sock.send(nomProjet)
              buff = 1
              while buff:
                  buff = self._sock.recv(1024)
                  archive += buff
              
              message={"message":"recv ok"}
              messageJson=json.dumps(message)
              messageJson=messageJson.encode()
              self._sock.send(messageJson)
              
              fichierMaitre=self._sock.recv(1024)
              
              self._sock.close()
              
              
              return archive,fichierMaitre
      

      Un truc comme ca ne fonctionne pas ?
      • Partager sur Facebook
      • Partager sur Twitter
      yjltg.
        14 décembre 2011 à 10:57:33

        Si c'est exactement ce que j'ai fait ;)
        • Partager sur Facebook
        • Partager sur Twitter
        Le jour où Microsoft fera des choses qui ne plantent pas, ça sera des clous ...

        [QST] Transfert de gros fichier en reseau

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown