2013-11-10 2 views
0

Решение (в некотором смысле): Я только что добавил atime sleep, хотя половина файла все еще повреждена, но по крайней мере теперь я передал все 1.19 mb . Удаление полностью base64 похоже на ответ: DРазъемы для передачи данных Wav

Я пытаюсь создать сценарий, в котором пользователь может переадресовать wav-файл. Это мой текущий код как на стороне клиента, так и на стороне сервера. Проблема: что мои данные повреждены в конце.

Также, когда я вижу все переданные данные, я закрываю сервер Ps. Я этот файл является плохим именем переменной, но я использую его только сейчас во время тестов

Заранее спасибо.

сторона клиента:

class SockThread(QtCore.QThread): 
    def create_r(self, filename): 
     self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
     self.filename = filename 
    def run(self): 
     self.sock.connect(("127.0.0.1", 8000)) 
     wf = open(self.filename, 'rb') 
     print("OK") 
     for line in wf: 

      self.sock.send(base64.b64encode(line)) 

     wf.close() 
     print("OK") 

сторона сервера:

file = open("sample.wav", "wb") 
self.connection = True 
while self.connection is True: 
try: 
    data = self.socket.recv(1024) 
    print(data) 
    file.write(base64.b64decode(data)) 
except: 
    break 

ответ

0

Я думаю, вам нужно прочитать весь файл из розетки, а затем b64decode его, делая это в кусках 1024 байт не может дают тот же результат.

+0

Это не сработало, файл больше не воспроизводится таким образом. –

Смежные вопросы