Forum Programmation.python Lecture d'un stream à partir d'un fichier sur le web ?

Posté par  .
Étiquettes : aucune
0
6
sept.
2006

Bonjour,



Je cherche à lire un stream en python.



Si le stream à lire sort d'un port d'un hôte, c'est très facile. Le code de la documentation Python suffit :



HOST = 'host.com'

PORT = 8000
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
data = s.recv(1024)
s.close()
print 'Received', repr(data)


Maintenant, je cherche à lire un stream audio à partir d'un fichier (et pas simplement un hôte). L'URL complète est (par exemple) : http://streaming.rtbf.be:8000/pure128x8558



J'ai essayé ceci mais çà ne fonctionne pas :



import socket

INHOST = "streaming.rtbf.be"
INPORT = 8000
INPATH = "/pure128x8558"

inSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
inSock.connect((INHOST, INPORT))
# pour recevoir l'info à partir du fichier voulu en HTTP (marche pas ?) :
inSock.send("GET " + INPATH + "HTTP/1.0\r\nHost: " + INHOST + "\r\n\r\n")

i = 0
while i <= 10:
data = inSock.recv(2048)
if not data:
print "no data, i = " + str(i)
break
print str(i) + ". Read ", len(data), " bytes"
i = i + 1

inSock.close()


Je n'arrive qu'à recevoir aucune donnée. Est-ce que quelqu'un pourrait me dire ce qui ne va pas dans mon code ?



Un grand merci d'avance.

  • # Facile

    Posté par  (site web personnel) . Évalué à 2.

    inSock.send("GET " + INPATH + "HTTP/1.0\r\nHost: " + INHOST + "\r\n\r\n")

    Si à cette ligne tu ajoutes une espace avant le "HTTP/1.0" ça ira bien mieux.

    Là, tu tentes de récupérer le fichier "/pure128x8558HTTP/1.0" sans spécifier de version HTTP :)
    • [^] # Re: Facile

      Posté par  . Évalué à 1.

      Merci :-)

      Pour ceux qui seraient intéressés, cela me sert à rediriger un flux d'une radio à partir d'un ordinateur qui a accès à internet vers un ordinateur sur le même réseau mais dont le pare-feu empêche l'accès à internet. Plus d'explications et le court code complet ici : http://www.epot.org/blog/?p=112

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.