Python tcp传输大文件

Python传输大文件

其实只需要使用以下两个函数分别代替sendrecv函数即可,但要注意,用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

如果觉得有用,阔以点个赞了(肯定有用啊)!!!
如果没用,我当场把电脑屏幕吃掉!!!

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值