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三元运算符实现方法
Dec 17 Python
Python中使用第三方库xlrd来写入Excel文件示例
Apr 05 Python
Python 性能优化技巧总结
Nov 01 Python
Python基础教程之内置函数locals()和globals()用法分析
Mar 16 Python
Python反转序列的方法实例分析
Mar 21 Python
浅谈python 读excel数值为浮点型的问题
Dec 25 Python
python 输出所有大小写字母的方法
Jan 02 Python
Django实现学员管理系统
Feb 26 Python
基于python二叉树的构造和打印例子
Aug 09 Python
使用python将excel数据导入数据库过程详解
Aug 27 Python
python使用openpyxl操作excel的方法步骤
May 28 Python
在PyCharm中安装PaddlePaddle的方法
Feb 05 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 图片上传代码
2011/09/13 PHP
php获取网页标题和内容函数(不包含html标签)
2014/02/03 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
模拟select的代码
2011/10/19 Javascript
使用jQuery和Bootstrap实现多层、自适应模态窗口
2014/12/22 Javascript
JavaScript原型对象、构造函数和实例对象功能与用法详解
2018/08/04 Javascript
微信小程序动态增加按钮组件
2018/09/14 Javascript
用Cordova打包Vue项目的方法步骤
2019/02/02 Javascript
微信小程序制作表格的方法
2019/02/14 Javascript
ES6知识点整理之数组解构和字符串解构的应用示例
2019/04/17 Javascript
解决vue项目中遇到 Cannot find module ‘chalk‘ 报错的问题
2020/11/05 Javascript
vue图片裁剪插件vue-cropper使用方法详解
2020/12/16 Vue.js
[03:49]DOTA2英雄基础教程 光之守卫
2014/01/14 DOTA
[49:15]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第二场 1月19日
2021/03/11 DOTA
Python的subprocess模块总结
2014/11/07 Python
Python中在for循环中嵌套使用if和else语句的技巧
2016/06/20 Python
python 获取网页编码方式实现代码
2017/03/11 Python
python3+selenium实现126邮箱登陆并发送邮件功能
2019/01/23 Python
.dcm格式文件软件读取及python处理详解
2020/01/16 Python
Python使用uuid库生成唯一标识ID
2020/02/12 Python
Dockers美国官方网站:卡其裤、男士服装、鞋及配件
2016/11/22 全球购物
西班牙家用电器和电子产品购物网站:Mi Electro
2019/02/25 全球购物
线程的基本概念、线程的基本状态以及状态之间的关系
2012/10/26 面试题
在SQL Server中创建数据库主要有那种方式
2013/09/10 面试题
Linux中如何用命令创建目录
2016/12/02 面试题
如何用Java判断一个文件或目录是否存在
2012/11/19 面试题
物业经理求职自我评价
2013/09/22 职场文书
个人简历自我鉴定
2013/10/11 职场文书
大学班级干部的自我评价分享
2014/02/10 职场文书
厨师长岗位职责
2014/03/02 职场文书
报考公务员诚信承诺书
2014/08/29 职场文书
纪念九一八事变演讲稿1000字
2014/09/14 职场文书
依法行政工作汇报
2014/10/28 职场文书
2015年学校工作总结范文
2015/04/20 职场文书
远程教育学习心得体会
2016/01/23 职场文书