Python传输大文件
其实只需要使用以下两个函数分别代替send
和recv
函数即可,但要注意,用SendString
发送的要用ReceiveString
收,其他的和普通的网络编程没差别,对了还要import struct:
def SendString(string,client_socket):
'发送任意长度的字符串'
try:
size = len(string)
f= struct.pack("i",size) #打包fmt结构体
client_socket.send(f)
client_socket.sendall(string.encode('utf-8')) #编码
except Exception as e:
print(e)
return
基本思想是先发送一个指示长度的int型↑
def ReceiveString(client_socket):
'接收任意长度的字符串'
try:
d = client_socket.recv(struct.calcsize("i"))
total_size = struct.unpack("i",d) #解包fmt结构体
num = total_size[0]//1024 #分片数
data = ''
for i in range(num):
data += client_socket.recv(1024).decode('utf-8') #解码
data += client_socket.recv(total_size[0]%1024).decode('utf-8')
return data
except Exception as e:
print(e)
return
如果觉得有用,阔以点个赞了(肯定有用啊)!!!
如果没用,我当场把电脑屏幕吃掉!!!