我正在尝试使用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()