python socket 文件传输
来源:互联网 发布:数据库教程视频 编辑:程序博客网 时间:2024/05/21 22:55
一. server#-*- coding:utf-8 -*-import os,socketimport hashlib#创建server的socket对象server=socket.socket()server_name=input('请输入服务器地址(ip地址):').strip()#port_name=int(input('请输入服务器端口,通用端口为8888:').strip())#绑定服务器地址和端口server.bind((server_name,8888))#监听server.listen(5)while True: #获取client对象 conn和IP地址 print('等待接入。。。。') conn,addr=server.accept() print(str(addr),'已经连接。。。') while True: #接收client端信息 data=conn.recv(1024) if not data: print('客户端没有数据传过来') break cmd,filename=data.decode().split()#用空格区分进行分割cmd和filename print(cmd,filename) #os.chdir(r'c:\py') #确认文件目录 #判断文件及文件夹是否存在 if os.path.isfile(filename): #存在,就打开文件,用byte流读取 get_file=open(filename,'rb') #获取文件的大小 file_size=os.stat(filename).st_size #先发送文件大小给client conn.send(str(file_size).encode('utf-8')) #获取客户端确认 #res=conn.recv(10) #获取md5加密对象 m = hashlib.md5() #发送文件 for line in get_file: #m.update(line) conn.send(line) #print('md5:',m.hexdigest()) get_file.close() else: conn.send('0'.encode('utf-8')) print('send done')server.close()二.client#-*- coding:utf-8 -*-import os,socketimport hashlib#创建server的socket对象client=socket.socket()server_name=input('请输入连接服务器地址(ip地址):').strip()#port_name=int(input('请输入服务器端口,通用端口为8888:').strip())#连接服务器client.connect((server_name,8888))while True: #输入指令 cmd_str=input('请输入get filename,输入Q退出:').strip().encode('utf-8') if not cmd_str: continue elif cmd_str==b'Q': print('退出') break else: #发送指令 client.send(cmd_str) #接收服务器的指令信息 file_size = client.recv(1024).decode() if file_size =='0' : print('没有这个文件或文件为空!') continue # else: # client.send(b'start') #client端确认允许传文件 print('文件大小:'+file_size) file_name= cmd_str.split()[1] print(file_name) os.chdir(r'd:\py') f=open(file_name,'wb') res_size = 0 while res_size<int(file_size): data=client.recv(1024) res_size+=len(data) f.write(data) print(file_size,res_size) else: print('文件接收完成') f.close()client.close()
阅读全文
0 0
- python socket 文件传输
- Socket文件传输
- Socket文件传输
- Socket文件传输
- socket文件传输
- Python文件传输
- linux socket 文件传输程序
- C# Socket 文件传输
- socket实现大型文件传输
- socket实现大型文件传输 .
- socket实现大型文件传输
- socket实现大型文件传输 .
- Socket文件传输过程详解
- socket通信文件传输
- Socket文件传输示例
- java Socket文件传输
- Java Socket图片文件传输
- Socket多文件传输
- Eureka-服务注册于发现
- Line: 209
- No12&13 Integer and Roman
- 滚动条锚点自动定位
- 20170621:python日志文件记录
- python socket 文件传输
- mysql 外键,主键,唯一性约束
- 计划(日志)
- PHP高级
- ajax的四种实现方式介绍
- Python数据库操作、Python DB API、数据库连接对象connection、数据库游标对象cursor
- redis Window下安装以及使用
- JS变量作用域浅析
- mac selenium+python 安装