python socket通信编程实现文件上传代码实例


Posted in Python onDecember 14, 2019

这篇文章主要介绍了python socket通信编程实现文件上传代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

写一个file_receive.py和一个file_send.py程序,由file_send.py上传一个文件,file_receive.py接收上传的文件,写到指定的包内

#file_receive.py
import socket,subprocess,os
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
sk = socket.socket()
address = ('127.0.0.1',8001)
sk.bind(address)
sk.listen(3)
conn,addr = sk.accept()
fileinfo = conn.recv(1024)
filename,filesize = str(fileinfo,'utf8').split('|')
#filename = str(filename,'utf8')
#filesize = int(str(filesize,'utf8'))
path = os.path.join(BASE_DIR,'file_recv',filename)
f = open(path,'wb')
has_received = 0
while has_received != int(filesize):
  data = conn.recv(1024)
  f.write(data)
  has_received += len(data)

f.close()
print('well done')
sk.close()
#file_send.py
import socket,os
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
sk = socket.socket()
address = ('127.0.0.1',8001)
sk.connect(address)
filename = input("please input filename:")
path = os.path.join(BASE_DIR,filename)
filesize = os.stat(path).st_size
fileinfo = '%s|%s'%(filename,str(filesize))
sk.sendall(bytes(fileinfo,'utf8'))

f = open(path,'rb')

has_sent = 0
while has_sent != int(filesize):
  data = f.read(1024)
  sk.sendall(data)
  has_sent += len(data)

print('well done!')
f.close()
sk.close()

文件运行后,实现了将file_send.py上传的test.png文件上传到当前路径下的file_recv包内.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中死锁的形成示例及死锁情况的防止
Jun 14 Python
python 连接sqlite及简单操作
Jun 30 Python
Python多重继承的方法解析执行顺序实例分析
May 26 Python
Python操作mongodb的9个步骤
Jun 04 Python
python机器学习之神经网络实现
Oct 13 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
Oct 17 Python
python linecache 处理固定格式文本数据的方法
Jan 08 Python
Python除法之传统除法、Floor除法及真除法实例详解
May 23 Python
pandas 数据结构之Series的使用方法
Jun 21 Python
实例详解Python装饰器与闭包
Jul 29 Python
Python如何将函数值赋给变量
Apr 28 Python
Python制作数据预测集成工具(值得收藏)
Aug 21 Python
python如何使用socketserver模块实现并发聊天
Dec 14 #Python
python paramiko远程服务器终端操作过程解析
Dec 14 #Python
安装PyInstaller失败问题解决
Dec 14 #Python
django自定义模板标签过程解析
Dec 14 #Python
django序列化serializers过程解析
Dec 14 #Python
Python搭建HTTP服务过程图解
Dec 14 #Python
Pyqt5自适应布局实例
Dec 13 #Python
You might like
Terran兵种介绍
2020/03/14 星际争霸
php 5.3.5安装memcache注意事项小结
2011/04/12 PHP
轻松实现php文件上传功能
2017/02/17 PHP
laravel 实现登陆后返回登陆前的页面方法
2019/10/03 PHP
用JQuery 实现的自定义对话框
2007/03/24 Javascript
js表格分页实现代码
2009/09/18 Javascript
JavaScript获取FCK编辑器信息的具体方法
2013/07/12 Javascript
删除条目时弹出的确认对话框
2014/06/05 Javascript
JavaScript也谈内存优化
2014/06/06 Javascript
JS判断客服QQ号在线还是离线状态的方法
2015/01/13 Javascript
JS中的进制转换以及作用
2016/06/26 Javascript
微信小程序 购物车简单实例
2016/10/24 Javascript
微信小程序 弹框和模态框实现代码
2017/03/10 Javascript
nodejs中向HTTP响应传送进程的输出
2017/03/19 NodeJs
jQuery Ajax使用FormData上传文件和其他数据后端web.py获取
2017/06/11 jQuery
javascript将list转换成树状结构的实例
2017/09/08 Javascript
js装饰设计模式学习心得
2018/02/17 Javascript
layui实现文件或图片上传记录
2018/08/28 Javascript
详解JavaScript 新语法之Class 的私有属性与私有方法
2019/04/23 Javascript
js面向对象方式实现拖拽效果
2021/03/03 Javascript
[51:15]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-GAMING
2014/05/22 DOTA
Python计算斗牛游戏概率算法实例分析
2017/09/26 Python
python通过matplotlib生成复合饼图
2020/02/06 Python
python程序如何进行保存
2020/07/03 Python
浅析Python 多行匹配模式
2020/07/24 Python
解决Python安装cryptography报错问题
2020/09/03 Python
ProBikeKit美国官网:自行车套件,跑步和铁人三项套件
2016/10/13 全球购物
介绍一下Python下range()函数的用法
2013/11/07 面试题
销售自我评价
2013/10/22 职场文书
税务专业毕业生自荐信
2013/11/10 职场文书
公务员职业生涯规划书范文  
2014/01/19 职场文书
婚礼主持词开场白
2014/03/13 职场文书
安全先进个人材料
2014/12/29 职场文书
五四青年节活动总结
2015/02/10 职场文书
春节晚会开场白
2015/05/29 职场文书
SpringBoot+Redis实现布隆过滤器的示例代码
2022/03/17 Java/Android