如何使用套接字将Wave文件从客户端发送到服务器

时间:2018-07-12 15:21:50

标签: python sockets wave

因此,我试图将保存的wave文件从客户端发送到带有套接字的服务器,但是每次尝试均失败,最接近的ive是:

#Server.py
requests = 0
while True:
    wavfile = open(str(requests)+str(addr)+".wav", "wb")
    while True:
        data = clientsocket.recv(1024)
        if not data:
            break
        requests = requests+1
        wavefile.write(data) 

#Client.py
bytes = open("senddata", "rb")
networkmanager.send(bytes.encode())

此代码的错误是“ AttributeError:'_ io.BufferedReader'对象没有属性'encode'”,因此有办法解决此问题吗?并且我正在使用python

2 个答案:

答案 0 :(得分:0)

由于您使用的是“读取二进制”模式,因此在发送之前无需对字节进行编码。

您应该读取文件以获取字节,而不是BufferedReader。

bytes = open("senddata", "rb").read()
networkmanager.send(bytes)

答案 1 :(得分:0)

您必须使用read读取字节,并使用sendall将字节发送到服务器:

bytes = open("senddata", "rb")
networkmanager.sendall(bytes.read())