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学习笔记 下载
Feb 10 Python
pyqt4教程之messagebox使用示例分享
Mar 07 Python
Python中的多重装饰器
Apr 11 Python
通过Python爬虫代理IP快速增加博客阅读量
Dec 14 Python
Python下实现的RSA加密/解密及签名/验证功能示例
Jul 17 Python
python 判断是否为正小数和正整数的实例
Jul 23 Python
Python探索之ModelForm代码详解
Oct 26 Python
python-tkinter之按钮的使用,开关方法
Jun 11 Python
python实现大文件分割与合并
Jul 22 Python
Python函数中的可变长参数详解
Sep 12 Python
详解基于python的多张不同宽高图片拼接成大图
Sep 26 Python
详解使用django-mama-cas快速搭建CAS服务的实现
Oct 30 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中使用asort进行中文排序失效的问题处理
2014/08/18 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
2018/10/12 PHP
实例介绍PHP中zip_open()函数用法
2019/02/15 PHP
Thinkphp 3.2框架使用Redis的方法详解
2019/10/24 PHP
js函数般调用正则
2008/04/08 Javascript
使用javascript实现有效时间的控制,并显示将要过期的时间
2014/01/02 Javascript
浅谈javascript 函数属性和方法
2015/01/21 Javascript
AngularJS iframe跨域打开内容时报错误的解决办法
2015/01/26 Javascript
jquery结婚电子请柬特效源码分享
2015/08/21 Javascript
JS实现网页每隔3秒弹出一次对话框的方法
2015/11/09 Javascript
javascript实现对表格元素进行排序操作
2015/11/18 Javascript
Angular的事件和表单详解
2016/12/26 Javascript
从零开始做一个pagination分页组件
2017/03/15 Javascript
mint-ui 时间插件使用及获取选择值的方法
2018/02/09 Javascript
Webpack中publicPath路径问题详解
2018/05/03 Javascript
vue router导航守卫(router.beforeEach())的使用详解
2019/04/19 Javascript
Node.js Windows Binary二进制文件安装方法
2019/05/16 Javascript
JS根据json数组多个字段排序及json数组常用操作
2019/06/06 Javascript
[02:09]DOTA2辉夜杯 EHOME夺冠举杯现场
2015/12/28 DOTA
复习Python中的字符串知识点
2015/04/14 Python
Python socket编程实例详解
2015/05/27 Python
python二维键值数组生成转json的例子
2019/12/06 Python
python设置表格边框的具体方法
2020/07/17 Python
image-set实现Retina屏幕下图片显示详细介绍
2012/12/24 HTML / CSS
美国名牌手表折扣网站:Jomashop
2020/05/22 全球购物
智能电子应届生求职信
2013/11/10 职场文书
竞选班干部的演讲稿
2014/04/24 职场文书
2014年职称评定工作总结
2014/11/26 职场文书
工厂采购员岗位职责
2015/04/07 职场文书
军训通讯稿范文
2015/07/18 职场文书
60条职场经典语录,总有一条能触动你的心
2019/08/21 职场文书
如何用JavaScript学习算法复杂度
2021/04/30 Javascript
python中super()函数的理解与基本使用
2021/08/30 Python
在 HTML 页面中使用 React的场景分析
2022/01/18 Javascript
JS高级程序设计之class继承重点详解
2022/07/07 Javascript