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 Amand Tihon (site web personnel) . Évalué à 2.
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 jayp . Évalué à 1.
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.