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海龟绘图实例教程
Jul 24 Python
Python3.x中自定义比较函数
Apr 24 Python
PyCharm代码整体缩进,反向缩进的方法
Jun 25 Python
在dataframe两列日期相减并且得到具体的月数实例
Jul 03 Python
Python正则表达式和re库知识点总结
Feb 11 Python
深入解析神经网络从原理到实现
Jul 26 Python
Django用户认证系统 组与权限解析
Aug 02 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
Aug 31 Python
python破解bilibili滑动验证码登录功能
Sep 11 Python
python实现与redis交互操作详解
Apr 21 Python
python中rc1什么意思
Jun 19 Python
你需要掌握的20个Python常用技巧
Feb 28 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
经典的星际争霸,满是回忆的BGM
2020/04/09 星际争霸
新手配置 PHP 调试环境(IIS+PHP+MYSQL)
2007/01/10 PHP
PHP curl实现抓取302跳转后页面的示例
2014/07/04 PHP
php基于base64解码图片与加密图片还原实例
2014/11/03 PHP
php include类文件超时问题处理
2015/02/06 PHP
PHP结合Vue实现滚动底部加载效果
2017/12/17 PHP
PHP中strtr与str_replace函数运行性能简单测试示例
2019/06/22 PHP
基于jQuery的ajax功能实现web service的json转化
2009/08/29 Javascript
DIV+CSS+JS不间断横向滚动实现代码
2013/03/19 Javascript
js如何设置在iframe框架中指定div不显示
2013/12/04 Javascript
JS中判断null、undefined与NaN的方法
2014/03/24 Javascript
js实现仿微博滚动显示信息的效果
2015/12/21 Javascript
JavaScript判断变量是否为数组的方法(Array)
2016/02/24 Javascript
Bootstrap的Refresh Icon也spin起来
2016/07/13 Javascript
Bootstrap 3浏览器兼容性问题及解决方案
2017/04/11 Javascript
vue脚手架中配置Sass的方法
2018/01/04 Javascript
Angular-UI Bootstrap组件实现警报功能
2018/07/16 Javascript
vue 移动端适配方案详解
2018/11/15 Javascript
Node.js Buffer模块功能及常用方法实例分析
2019/01/05 Javascript
javascript json对象小技巧之键名作为变量用法分析
2019/11/11 Javascript
JS数组及对象遍历方法代码汇总
2020/06/16 Javascript
使用Python的Tornado框架实现一个简单的WebQQ机器人
2015/04/24 Python
Django实现学员管理系统
2019/02/26 Python
详解DeBug Python神级工具PySnooper
2019/07/03 Python
Windows10下 python3.7 安装 facenet的教程
2019/09/10 Python
sklearn-SVC实现与类参数详解
2019/12/10 Python
OpenCV 之按位运算举例解析
2020/06/19 Python
Python如何合并多个字典或映射
2020/07/24 Python
解决pip安装的第三方包在PyCharm无法导入的问题
2020/10/15 Python
jupyter notebook远程访问不了的问题解决方法
2021/01/11 Python
岗位职责范本
2013/11/23 职场文书
入党积极分子思想汇报
2014/01/02 职场文书
学校花圃的标语
2014/06/18 职场文书
财务管理专业自荐书
2014/09/02 职场文书
表扬信范文
2019/04/22 职场文书
Python实现查询剪贴板自动匹配信息的思路详解
2021/07/09 Python