使用python套接字编程将文件发送到浏览器

时间:2016-10-20 02:42:31

标签: python sockets http web server

我正在尝试使用python(仅限套接字编程)将文件(mp3)发送到客户端(浏览器:Chrome)。我的问题是该文件正在下载而不是在浏览器上流式传输。我无法理解我错在哪里。请告诉我。

此外,下载的音频文件没有损坏,我可以播放音频。

这是我的代码:

import socket
import os
import time
from encodings.base64_codec import base64_encode
serversocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
port=8000

def createServer():

   serversocket.bind(("",port))
   serversocket.listen(5)
   file=open('music.mp3',"rb")
   z=file.read()
   var=len(z)
   file.close()
   (clientsocket, address) = serversocket.accept()
   clcommand=clientsocket.recv(1024).decode('utf8')

   header="HTTP/1.1 200 OK"
   header1="Content-Type: audio/mpeg"
   header2="Content-Length: {}".format(var)
   blank="\r\n"

   sendt=header+header1+header2+blank
   clientsocket.send(sendt.encode())

   file=open("music.mp3",'rb')
   z=file.read(512)
   while (z):
     try:

        clientsocket.send(z)
        z=file.read(512)

     except:
        print("done sending")
        exit()

createServer()

0 个答案:

没有答案