客户端现在我用的一次发送,服务器用的判断接收,字节数能对上,但是就是文件是损坏的,用过分段发送,在每次发送都延迟1秒,也是字节数能对上,文件无法打开,麻烦各位帮忙看下我的代码,哪里错了,应该怎么做呢
客户端

服务器端

客户端现在我用的一次发送,服务器用的判断接收,字节数能对上,但是就是文件是损坏的,用过分段发送,在每次发送都延迟1秒,也是字节数能对上,文件无法打开,麻烦各位帮忙看下我的代码,哪里错了,应该怎么做呢
客户端


关注让【道友老李】来帮你解答,本回答参考通义千问大模型编写,并整理提供,如果还有疑问可以点击头像关注私信或评论。
如果答案让您满意,请采纳、关注,非常感谢!问题分析: 根据描述,客户端发送文件时字节数能对上,但接收的文件却是损坏的。即使尝试了分段发送并加入延迟,问题仍未解决。下面就可能的问题进行分析和解决方案:
# 客户端发送文件代码示例
import socket
import time
import base64
def send_file(file_path, host, port):
with open(file_path, "rb") as file:
data = file.read()
encoded_data = base64.b64encode(data)
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((host, port))
s.sendall(encoded_data)
# 服务器端接收文件代码示例
import socket
import base64
host = '127.0.0.1'
port = 12345
def receive_file(save_path):
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((host, port))
s.listen()
conn, _ = s.accept()
with conn:
data = conn.recv(1024)
decoded_data = base64.b64decode(data)
with open(save_path, "wb") as file:
file.write(decoded_data)
# 使用示例
send_file("example.txt", "127.0.0.1", 12345)
receive_file("received_example.txt")
通过以上代码示例和分析,您可以检查和修改相应部分来解决文件损坏的问题。