分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

034文件上传

发布时间:2023-09-06 01:44责任编辑:彭小芳关键词:文件上传

因为这个是简单的,所以很容易
思想就是建立连接后,客户端发送文件名字和大小到服务端,服务端接受后,客户端开始发送文件,直到发完。具体的还是要看下面的代码,我自己实现了一遍

 1 import ?socket 2 import ?os 3 ?4 def get_server_socket(): 5 ????sk = socket.socket() 6 ????address = (‘127.0.0.1‘,8888) 7 ????sk.bind(address) 8 ????sk.listen(3) 9 ????return sk10 11 def ?wait_connect(sk):12 ????print(‘waitconnecting...‘)13 ????conn, addr = sk.accept()14 ????return conn15 16 if ?__name__ == ‘__main__‘:17 ????sk = get_server_socket()18 ????conn = wait_connect(sk)19 ????BASIC_DIR = os.path.dirname(os.path.abspath(__file__))20 ????while True:21 ????????data = str(conn.recv(1024),‘utf8‘)22 ????????cmd,filename,file_size = data.split(‘|‘)23 ????????path = os.path.join(BASIC_DIR,‘yuan‘,filename)24 ????????file_size = int(file_size)25 ????f = open(path,‘wb‘)26 ????has_receive = 027 ????while has_receive != file_size:28 ????????data = conn.recv(1024)29 ????????f.write(data)30 ????????has_receive += len(data)31 ????f.close()
post_server.py
 1 import ?socket 2 import ?os 3 ?4 def ?get_client_socket(): 5 ????sk = socket.socket() 6 ????address = (‘127.0.0.1‘,8888) 7 ????sk.connect(address) 8 ????return sk 9 10 if __name__ == ‘__main__‘:11 ????BASIC_DIR = os.path.dirname(os.path.abspath(__file__))12 ????sk = get_client_socket()13 ????while ?True:14 ????????inp = input(‘>>>‘).strip()#post|11.png15 ????????cmd,path = inp.split(‘|‘)16 ????????path = os.path.join(BASIC_DIR,path)#使用系统的路径拼接17 ????????filename = os.path.basename(path)#拿到文件名字18 ????????file_size = os.stat(filename).st_size#拿到文件的大小19 ????????file_info = ‘post|%s|%s‘%(filename,file_size)20 ????????sk.sendall(bytes(file_info,‘utf8‘))21 ????f = open(path,‘rb‘)22 ????has_sent = 023 ????while has_sent != file_size:24 ????????data = f.read(1024)25 ????????sk.sendall(data)26 ????????has_sent += len(data)27 ????f.close()28 ????print(‘上传完成‘)
post_client.py

034文件上传

原文地址:https://www.cnblogs.com/-nbloser/p/8504286.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved