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实现的百度站长自动URL提交小工具
Jun 27 Python
最大K个数问题的Python版解法总结
Jun 16 Python
Python切换pip安装源的方法详解
Nov 18 Python
Python编程之event对象的用法实例分析
Mar 23 Python
关于Python 3中print函数的换行详解
Aug 08 Python
python+pyqt实现12306图片验证效果
Oct 25 Python
聊聊Python中的pypy
Jan 12 Python
Python 常用模块 re 使用方法详解
Jun 06 Python
python自动识别文本编码格式代码
Dec 26 Python
Python中qutip用法示例详解
Oct 02 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
Nov 28 Python
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
Jun 23 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
第三节 定义一个类 [3]
2006/10/09 PHP
投票管理程序
2006/10/09 PHP
Laravel使用消息队列需要注意的一些问题
2017/12/13 PHP
关于javascript DOM事件模型的两件事
2010/07/22 Javascript
不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象
2013/01/11 Javascript
ExtJS自定义主题(theme)样式详解
2013/11/18 Javascript
IE中JS跳转丢失referrer问题的2个解决方法
2014/07/18 Javascript
Google Maps API地图应用示例分享
2014/10/23 Javascript
javascript常用代码段搜集
2014/12/04 Javascript
jQuery判断指定id的对象是否存在的方法
2015/05/22 Javascript
实例详解jQuery表单验证插件validate
2016/01/18 Javascript
原生js的数组除重复简单实例
2016/05/24 Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
2016/06/20 Javascript
javascript数组常用方法汇总
2016/09/10 Javascript
IONIC自定义subheader的最佳解决方案
2016/09/22 Javascript
基于Vue的文字跑马灯组件(npm 组件包)
2017/05/24 Javascript
基于JavaScript 性能优化技巧心得(分享)
2017/12/11 Javascript
解决vue v-for 遍历循环时key值报错的问题
2018/09/06 Javascript
vue通过style或者class改变样式的实例代码
2018/10/30 Javascript
小程序获取周围IBeacon设备的方法
2018/10/31 Javascript
vue动画—通过钩子函数实现半场动画操作
2020/08/09 Javascript
JS实现简易图片自动轮播
2020/10/16 Javascript
[01:15:15]VG VS EG Supermajor小组赛B组胜者组第一轮 BO3第二场 6.2
2018/06/03 DOTA
[01:07:19]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第一场 1月19日
2021/03/11 DOTA
简介Python中用于处理字符串的center()方法
2015/05/18 Python
Python 中urls.py:URL dispatcher(路由配置文件)详解
2017/03/24 Python
python生成二维码的实例详解
2017/10/29 Python
Python使用pickle模块存储数据报错解决示例代码
2018/01/26 Python
pyhanlp安装介绍和简单应用
2019/02/22 Python
Python Lambda函数使用总结详解
2019/12/11 Python
Python猜数字算法题详解
2020/03/01 Python
python多线程实现同时执行两个while循环的操作
2020/05/02 Python
Expedia西班牙:预订酒店、机票、旅行和廉价度假套餐
2019/04/10 全球购物
安全资料员岗位职责范本
2014/06/28 职场文书
小学英语教学随笔
2015/08/14 职场文书
python析构函数用法及注意事项
2021/06/22 Python