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之hello world
May 21 Python
Python2.7编程中SQLite3基本操作方法示例
Aug 09 Python
使用tensorflow实现线性svm
Sep 07 Python
对python mayavi三维绘图的实现详解
Jan 08 Python
python用for循环求和的方法总结
Jul 08 Python
python对绑定事件的鼠标、按键的判断实例
Jul 17 Python
python验证码图片处理(二值化)
Nov 01 Python
python的time模块和datetime模块实例解析
Nov 29 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
Mar 01 Python
Python+Selenium实现自动化的环境搭建的步骤(图文)
Sep 01 Python
python实现数据结构中双向循环链表操作的示例
Oct 09 Python
Python将CSV文件转化为HTML文件的操作方法
Jun 30 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中SQL注入攻击与XSS攻击
2012/06/10 PHP
php上传文件并显示上传进度的方法
2015/03/24 PHP
全面解读PHP的人气开发框架Laravel
2015/10/15 PHP
Yii框架实现对数据库的CURD操作示例
2019/09/03 PHP
js数字转换为float,取N位小数
2014/02/08 Javascript
Javascript添加监听与删除监听用法详解
2014/12/19 Javascript
javascript面向对象之对象的深入理解
2015/01/13 Javascript
JS创建对象几种不同方法详解
2016/03/01 Javascript
jQuery加载及解析XML文件的方法实例分析
2017/01/22 Javascript
JavaScript之生成器_动力节点Java学院整理
2017/06/30 Javascript
浅谈vue自定义全局组件并通过全局方法 Vue.use() 使用该组件
2017/12/07 Javascript
vue2.0 和 animate.css的结合使用
2017/12/12 Javascript
在Vue中使用highCharts绘制3d饼图的方法
2018/02/08 Javascript
微信小程序实现留言板(Storage)
2018/11/02 Javascript
微信小程序获取用户信息并保存登录状态详解
2019/05/10 Javascript
layui table复选框禁止某几条勾选的实例
2019/09/20 Javascript
搭建Vue从Vue-cli到router路由护卫的实现
2019/11/14 Javascript
jQuery 图片查看器插件 Viewer.js用法简单示例
2020/04/04 jQuery
使用Vue Composition API写出清晰、可扩展的表单实现
2020/06/10 Javascript
[46:04]Liquid vs VP Supermajor决赛 BO 第四场 6.10
2018/07/05 DOTA
Python 获取新浪微博的最新公共微博实例分享
2014/07/03 Python
python中csv文件的若干读写方法小结
2018/07/04 Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
2020/07/20 Python
CSS3实现曲线阴影和翘边阴影
2016/05/03 HTML / CSS
html5 横向滑动导航栏的方法示例
2020/05/08 HTML / CSS
巴西电子产品购物网站:Saldão da Informática
2018/01/09 全球购物
德国旅行、体验和活动的预订平台:Watado
2019/12/04 全球购物
护理学中专毕业生求职信
2013/11/11 职场文书
申报职称专业技术个人的自我评价
2013/12/12 职场文书
安全伴我行主题班会
2015/08/13 职场文书
《秋思》教学反思
2016/02/23 职场文书
nginx如何将http访问的网站改成https访问
2021/03/31 Servers
浅谈移动端中的视口(viewport)的具体使用
2021/04/13 HTML / CSS
Mysql数据库值的添加、修改、删除及清空操作实例
2021/06/20 MySQL
Java面试题冲刺第十七天--基础篇3
2021/08/07 面试题
Docker安装MySql8并远程访问的实现
2022/07/07 Servers