在python中使用套接字传输文件时图像失真
当我使用此代码传输文本文件时,收到的文本文件与发送的文本文件完全相同。但是,当我使用此代码传输图像文件或视频文件时,会出现问题(失真),我不明白为什么 服务器代码:在python中使用套接字传输文件时图像失真,python,sockets,file-transfer,Python,Sockets,File Transfer,当我使用此代码传输文本文件时,收到的文本文件与发送的文本文件完全相同。但是,当我使用此代码传输图像文件或视频文件时,会出现问题(失真),我不明白为什么 服务器代码: import socket import base64 filename = open("received.jpg","a") TCP_IP = '127.0.0.1' TCP_PORT = 5005 BUFFER_SIZE = 1024 s = socket.socket(socket.AF_INET, socket.SOC
import socket
import base64
filename = open("received.jpg","a")
TCP_IP = '127.0.0.1'
TCP_PORT = 5005
BUFFER_SIZE = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((TCP_IP, TCP_PORT))
s.listen(1)
conn, addr = s.accept()
data = conn.recv(16)
filesize = int(data)
iter = filesize//BUFFER_SIZE
i = 0
while (i < iter):
data = conn.recv(BUFFER_SIZE)
filename.write(data.decode('base64'))
if not data:
continue
i = i + 1
data = conn.recv((filesize - (iter*BUFFER_SIZE)))
filename.write(data.decode('base64'))
filename.close()
conn.close()
几乎可以肯定
filename = open("received.jpg","ab")
OT:为什么
文件名
?这是一个文件,不是字符串。
filename = open("received.jpg","a")
filename = open("received.jpg","ab")