解決策(ある意味で):半分のファイルがまだ破損しているにもかかわらず、 atime sleep を追加しましたが、少なくとも今はすべての 1.19 mb を転送しました。base64を完全に削除することが答えのようです:D
ユーザーが 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