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 文件操作实现代码
Oct 07 Python
Python和php通信乱码问题解决方法
Apr 15 Python
Python实现冒泡排序的简单应用示例
Dec 11 Python
Python Xml文件添加字节属性的方法
Mar 31 Python
Python将list中的string批量转化成int/float的方法
Jun 26 Python
Django unittest 设置跳过某些case的方法
Dec 26 Python
Python求一批字符串的最长公共前缀算法示例
Mar 02 Python
Django框架封装外部函数示例
May 28 Python
解决Django加载静态资源失败的问题
Jul 28 Python
python3 tkinter实现添加图片和文本
Nov 26 Python
python:目标检测模型预测准确度计算方式(基于IoU)
Jan 18 Python
Python模块zipfile原理及使用方法详解
Aug 04 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最简单的删除目录与文件实现方法
2014/11/28 PHP
利用PHP将部分内容用星号替换
2020/04/21 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
javascript 写的一个简单的timer
2009/07/30 Javascript
JavaScript 自动完成脚本整理(33个)
2009/10/20 Javascript
jQuery中attr()方法用法实例
2015/01/05 Javascript
jQuery实现鼠标划过展示大图的方法
2015/03/09 Javascript
jquery实现简洁文件上传表单样式
2015/11/02 Javascript
js实现页面a向页面b传参的方法
2016/05/29 Javascript
JS使用正则表达式验证身份证号码
2017/06/23 Javascript
浅谈jquery中ajax跨域提交的时候会有2次请求的问题
2017/11/10 jQuery
还不懂递归?读完这篇文章保证你会懂
2018/07/29 Javascript
webuploader实现上传图片到服务器功能
2018/08/16 Javascript
使用Node搭建reactSSR服务端渲染架构
2018/08/30 Javascript
vue-awesome-swiper 基于vue实现h5滑动翻页效果【推荐】
2018/11/08 Javascript
Vue+Express实现登录状态权限验证的示例代码
2019/05/05 Javascript
js实现图片跟随鼠标移动效果
2019/10/16 Javascript
详解阿里Node.js技术文档之process模块学习指南
2021/01/04 Javascript
python开发中range()函数用法实例分析
2015/11/12 Python
python学习教程之Numpy和Pandas的使用
2017/09/11 Python
python学生管理系统代码实现
2020/04/05 Python
Python实现多条件筛选目标数据功能【测试可用】
2018/06/13 Python
使用python Fabric动态修改远程机器hosts的方法
2018/10/26 Python
django rest framework 过滤时间操作
2020/07/12 Python
Python实现加密的RAR文件解压的方法(密码已知)
2020/09/11 Python
纯CSS3实现圆角效果(含IE兼容解决方法)
2014/05/07 HTML / CSS
新大陆软件面试题
2016/11/24 面试题
过程装备与控制工程专业个人的求职信
2013/12/01 职场文书
入党积极分子思想汇报范文
2014/01/05 职场文书
中国梦的演讲稿
2014/01/08 职场文书
简历中自我评价怎么写
2014/02/12 职场文书
地震捐款倡议书
2014/08/29 职场文书
四风问题自我剖析材料
2014/10/07 职场文书
葬礼主持词
2015/07/02 职场文书
mysql如何配置白名单访问
2021/06/30 MySQL
全面盘点MySQL中的那些重要日志文件
2021/11/27 MySQL