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的Flask框架中实现简单的登录功能的教程
Apr 20 Python
Python实现简单字典树的方法
Apr 29 Python
无法使用pip命令安装python第三方库的原因及解决方法
Jun 12 Python
Win10下Python3.7.3安装教程图解
Jul 08 Python
用Python解数独的方法示例
Oct 24 Python
Python3 filecmp模块测试比较文件原理解析
Mar 23 Python
浅谈django框架集成swagger以及自定义参数问题
Jul 07 Python
Python爬取微信小程序通用方法代码实例详解
Sep 29 Python
python实现马丁策略的实例详解
Jan 15 Python
字典算法实现及操作 --python(实用)
Mar 31 Python
Python绘制分类图的方法
Apr 20 Python
python脚本框架webpy的url映射详解
Nov 20 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
PHP 的几个配置文件函数
2006/12/21 PHP
php mysql索引问题
2008/06/07 PHP
PHP学习笔记之三 数据库基本操作
2011/01/17 PHP
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
2012/11/01 PHP
ThinkPHP处理Ajax返回的方法
2014/11/22 PHP
php编写简单的文章发布程序
2015/06/18 PHP
PHP实现给定一列字符,生成指定长度的所有可能组合示例
2019/06/22 PHP
Laravel 框架路由原理与路由访问实例分析
2020/04/14 PHP
JQuery拖拽元素改变大小尺寸实现代码
2012/12/10 Javascript
javascript数据结构之双链表插入排序实例详解
2015/11/25 Javascript
JavaScript设计模式初探
2016/01/07 Javascript
AngularJS入门教程之AngularJS模型
2016/04/18 Javascript
纯JS代码实现一键分享功能
2016/04/20 Javascript
jQuery封装的屏幕居中提示信息代码
2016/06/08 Javascript
JS模仿腾讯图片站的图片翻页按钮效果完整实例
2016/06/21 Javascript
ReactNative页面跳转实例代码
2016/09/27 Javascript
bootstrap table操作技巧分享
2017/02/15 Javascript
一步步教会你微信小程序的登录鉴权
2018/04/09 Javascript
vue内置组件transition简单原理图文详解(小结)
2018/07/12 Javascript
vue实现element-ui对话框可拖拽功能
2018/08/17 Javascript
[01:09]DOTA2次级职业联赛 - ishow.HMM战队宣传片
2014/12/01 DOTA
Python中MYSQLdb出现乱码的解决方法
2014/10/11 Python
Python中join和split用法实例
2015/04/14 Python
疯狂上涨的Python 开发者应从2.x还是3.x着手?
2017/11/16 Python
TF-IDF与余弦相似性的应用(一) 自动提取关键词
2017/12/21 Python
python获取程序执行文件路径的方法(推荐)
2018/04/26 Python
Flask 上传自定义头像的实例详解
2020/01/09 Python
机电一体化自荐信
2013/12/10 职场文书
市场营销专业个人求职信范文
2013/12/14 职场文书
学期自我评价
2014/01/27 职场文书
家长给小学生的评语
2014/01/30 职场文书
遗嘱公证书标准样本
2014/04/08 职场文书
小学优秀教师材料
2014/12/15 职场文书
2015迎新晚会开场白
2015/07/17 职场文书
驾驶员安全责任协议书
2016/03/22 职场文书
python 安全地删除列表元素的方法
2022/03/16 Python