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实现将内容分行输出
Nov 05 Python
使用Python的Tornado框架实现一个Web端图书展示页面
Jul 11 Python
Python冒泡排序注意要点实例详解
Sep 09 Python
Python插件virtualenv搭建虚拟环境
Nov 20 Python
用python爬取租房网站信息的代码
Dec 14 Python
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
Jan 05 Python
python UDP(udp)协议发送和接收的实例
Jul 22 Python
python 检查数据中是否有缺失值,删除缺失值的方式
Dec 02 Python
tensorflow使用freeze_graph.py将ckpt转为pb文件的方法
Apr 22 Python
Python爬虫:Request Payload和Form Data的简单区别说明
Apr 30 Python
python pandas dataframe 去重函数的具体使用
Jul 20 Python
Django实现微信小程序支付的示例代码
Sep 03 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
Youku 视频绝对地址获取的方法详解
2013/06/26 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
在IE模态窗口中自由查看HTML源码的方法
2007/03/08 Javascript
JavaScript驾驭网页-获取网页元素
2016/03/24 Javascript
AngularJS 使用ng-repeat报错 [ngRepeat:dupes]
2017/01/19 Javascript
jQuery图片加载失败替换默认图片方法汇总
2017/11/29 jQuery
vue 表单验证按钮事件交由父组件触发的方法
2018/12/17 Javascript
JavaScript实现无限级递归树的示例代码
2019/03/29 Javascript
Promise扫盲贴
2019/06/24 Javascript
为nuxt项目写一个面包屑cli工具实现自动生成页面与面包屑配置
2019/09/29 Javascript
Vue 中获取当前时间并实时刷新的实现代码
2020/05/12 Javascript
[43:32]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
[02:47]2018年度DOTA2最佳辅助位选手4号位-完美盛典
2018/12/17 DOTA
[49:21]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第二场 11.05
2020/11/06 DOTA
Python中函数的参数定义和可变参数用法实例分析
2015/06/04 Python
python通过getopt模块如何获取执行的命令参数详解
2017/12/29 Python
Python socket实现的简单通信功能示例
2018/08/21 Python
简单了解python高阶函数map/reduce
2019/06/28 Python
节日快乐! Python画一棵圣诞树送给你
2019/12/24 Python
Python实现遗传算法(二进制编码)求函数最优值方式
2020/02/11 Python
pandas和spark dataframe互相转换实例详解
2020/02/18 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
2020/03/10 Python
Python基于百度AI实现OCR文字识别
2020/04/02 Python
python自动化办公操作PPT的实现
2021/02/05 Python
HTML5中通过li-canvas轻松实现单图、多图、圆角图绘制,单行文字、多行文字等
2018/11/30 HTML / CSS
英国评分最高的女性剃须刀订阅盒:FFS Beauty
2018/01/25 全球购物
Merchant 1948澳大利亚:新西兰领先的鞋类和靴子供应商
2018/03/24 全球购物
英国在线购买轮胎、预订汽车、汽车维修和装配网站:Protyre
2020/04/12 全球购物
请用Java实现列出某个目录下的所有文件
2013/09/23 面试题
大学生职业生涯设计书
2014/01/02 职场文书
小区消防演习方案
2014/02/21 职场文书
英语教研活动总结
2014/07/02 职场文书
SpringBoot实现异步事件驱动的方法
2021/06/28 Java/Android
threejs太阳光与阴影效果实例代码
2022/04/05 Javascript
MySql如何将查询的出来的字段进行转换
2022/06/14 MySQL
Python测试框架pytest核心库pluggy详解
2022/08/05 Golang