Python下Socket实现上传下载文件

下列代码实现在客户端上传、下载和浏览服务器文件

运行环境:ubuntu16.04python3.5

服务端IP:192.168.1.8            开放端口号:4518

服务端代码:

###################################################################
#*- 								-*#
#*- coding	: UTF-8 	        			-*#
#*- function	: servicer                                 	-*#
#*- localhost	: 192.168.1.8 					-*#
#*- port	: 4518 						-*#
#*- author	: pwn_w			        		-*#
#*-			 					-*#
###################################################################

import socket,time,socketserver,struct,os

host='192.168.1.8'                                              #本机IP地址
port=4518                                                       #使用的端口
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) 		#定义socket类型
s.bind((host,port))						#绑定需要监听的Ip和端口号,tuple格式
s.listen(1)


#--------------------------------接收文件---------------------------------#
def receiverFile(connection,address):				
        try:
            filename = str(conn.recv(1024),encoding="utf8")
            print('Get filename',filename)
            conn.sendall(bytes(filename,encoding="utf8"))
            connection.settimeout(600)
            fileinfo_size=struct.calcsize('128sl') 
            buf = connection.recv(fileinfo_size)
            if buf: #如果不加这个if,第一个文件传输完成后会自动走到下一句
                filename,filesize =struct.unpack('128sl',buf) 
                filename=filename.decode('utf-8')
                filename_f = filename.strip('\00')
                filenewname = os.path.join('/home/pwn_w/',(filename_f))
                print ('file new name is %s, filesize is %s' %(filenewname,filesize))	

                recvd_size = 0 #定义接收了的文件大小
                file = open(filenewname,'wb')
	
                print ('start receiving...')
                while no
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值