2 votes

Les objets créés par urllib2.urlopen() représentent-ils une connexion constante ?

Dans le code suivant, la connexion au serveur distant est-elle maintenue ouverte jusqu'à ce que close() est appelé ou est-il recréé à chaque fois que read() s'appelle ? Dans le code suivant, je vois qu'une nouvelle communication réseau se produit à chaque fois. read() est appelé, plutôt que le fichier distant soit mis en mémoire tampon dès que l'option urlopen() s'appelle.

import urllib2

handle = urllib2.urlopen('http://download.thinkbroadband.com/5MB.zip')
while True:
    buff = handle.read(64*1024) # Is a new connection to the server created here?
    if len(x) == 0:
        break
handle.close()

0voto

danseery Points 458

Essayez d'exécuter wireshark ou fiddler et regardez le port 80 sans rien d'autre. Exécutez votre programme et voyez quel trafic vous obtenez. Cela devrait répondre à votre question.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X