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使用cx_Oracle模块将oracle中数据导出到csv文件的方法
May 16 Python
浅谈关于Python3中venv虚拟环境
Aug 01 Python
浅谈python脚本设置运行参数的方法
Dec 03 Python
Python中的元组介绍
Jan 28 Python
简单了解Python3里的一些新特性
Jul 13 Python
python中多个装饰器的调用顺序详解
Jul 16 Python
python内存监控工具memory_profiler和guppy的用法详解
Jul 29 Python
详解numpy矩阵的创建与数据类型
Oct 18 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
Mar 19 Python
Python ATM功能实现代码实例
Mar 19 Python
python实现图像高斯金字塔的示例代码
Dec 11 Python
教你怎么用Python操作MySql数据库
May 31 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 模拟登陆MSN并获得用户信息
2009/05/16 PHP
用php或asp创建网页桌面快捷方式的代码
2010/03/23 PHP
PHP多进程编程总结(推荐)
2016/07/18 PHP
广告显示判断
2006/08/31 Javascript
服务端 VBScript 与 JScript 几个相同特性的写法 By shawl.qiu
2007/03/06 Javascript
ExtJS 2.0实用简明教程 之Ext类库简介
2009/04/29 Javascript
jquery里的each使用方法详解
2010/12/22 Javascript
JQuery设置和去除disabled属性的5种方法总结
2013/05/16 Javascript
javascript中数组的多种定义方法和常用函数简介
2014/05/09 Javascript
node.js中的fs.fchown方法使用说明
2014/12/16 Javascript
javascript中递归函数用法注意点
2015/07/30 Javascript
Jquery全屏相册插件zoomvisualizer具有调节放大与缩小功能
2015/11/02 Javascript
javascript中的作用域和闭包详解
2016/01/13 Javascript
jQuery使用模式窗口实现在主页面和子页面中互相传值的方法
2016/03/01 Javascript
jQuery实现可以编辑的表格实例详解【附demo源码下载】
2016/07/09 Javascript
浅谈Angularjs link和compile的使用区别
2016/10/21 Javascript
微信小程序开发之从相册获取图片 使用相机拍照 本地图片上传
2017/04/18 Javascript
关于vue中 $emit的用法详解
2018/04/12 Javascript
vue双向绑定及观察者模式详解
2019/03/19 Javascript
JS typeof fn === 'function' && fn()详解
2020/08/22 Javascript
pandas groupby 分组取每组的前几行记录方法
2018/04/20 Python
python3实现基于用户的协同过滤
2018/05/31 Python
python判断所输入的任意一个正整数是否为素数的两种方法
2019/06/27 Python
利用Python绘制Jazz网络图的例子
2019/11/21 Python
Python读写锁实现实现代码解析
2020/11/28 Python
个人求职信范例
2014/01/29 职场文书
关于是否需要写商业计划书
2014/02/07 职场文书
人事部经理岗位职责
2014/03/07 职场文书
利群广告词
2014/03/20 职场文书
大学新闻系求职信
2014/06/03 职场文书
订货会主持词
2015/07/01 职场文书
2016反腐倡廉警示教育心得体会
2016/01/13 职场文书
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang
Mysql实现主从配置和多主多从配置
2021/06/02 MySQL
关于CSS自定义属性与前端页面的主题切换问题
2022/03/21 HTML / CSS
教你使用RustDesk 搭建一个自己的远程桌面中继服务器
2022/08/14 Servers