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写个自动SSH登录远程服务器的小工具(实例)
Jun 17 Python
Python Series从0开始索引的方法
Nov 06 Python
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
Dec 02 Python
浅谈python编译pyc工程--导包问题解决
Mar 20 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
May 10 Python
python中sort和sorted排序的实例方法
Aug 26 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
Mar 11 Python
python对一个数向上取整的实例方法
Jun 18 Python
python文件及目录操作代码汇总
Jul 08 Python
python中watchdog文件监控与检测上传功能
Oct 30 Python
python 用opencv实现霍夫线变换
Nov 27 Python
python日志通过不同的等级打印不同的颜色(示例代码)
Jan 13 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
删除及到期域名的查看(抢域名必备哦)
2008/05/14 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
2013/06/17 PHP
Yii CFileCache 获取不到值的原因分析
2017/02/08 PHP
php 使用curl模拟ip和来源进行访问的实现方法
2017/05/02 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
JavaScript?Apple设备检测示例代码
2013/11/15 Javascript
jQuery产品间断向下滚动效果核心代码
2014/05/08 Javascript
jQuery中hover方法和toggle方法使用指南
2015/02/27 Javascript
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
2016/05/12 Javascript
Javascript使用function创建类的两种方法(推荐)
2016/11/19 Javascript
vue组件发布到npm简单步骤
2017/11/30 Javascript
浅谈vue-cli 3.0.x 初体验
2018/04/11 Javascript
Mac下通过brew安装指定版本的nodejs教程
2018/05/17 NodeJs
React-router4路由监听的实现
2018/08/07 Javascript
微信小程序实现两边小中间大的轮播效果的示例代码
2018/12/07 Javascript
利用Fn.py库在Python中进行函数式编程
2015/04/22 Python
Python使用迭代器打印螺旋矩阵的思路及代码示例
2016/07/02 Python
Python创建xml文件示例
2017/03/22 Python
基于python元祖与字典与集合的粗浅认识
2017/08/23 Python
python3爬取淘宝信息代码分析
2018/02/10 Python
利用Pandas读取文件路径或文件名称包含中文的csv文件方法
2018/07/04 Python
Python中函数的基本定义与调用及内置函数详解
2019/05/13 Python
python实现猜数字游戏
2020/03/25 Python
python使用配置文件过程详解
2019/12/28 Python
HTML5新增元素如何兼容旧浏览器有哪些方法
2014/05/09 HTML / CSS
Crocs美国官方网站:卡骆驰洞洞鞋
2017/08/04 全球购物
Hertz荷兰:荷兰和全球租车
2018/01/07 全球购物
美国时尚大码女装购物网站:Avenue
2019/05/24 全球购物
哈萨克斯坦最大的时装、鞋子和配饰在线商店:Lamoda.kz
2019/11/19 全球购物
介绍下Java的输入输出流
2014/01/22 面试题
金融管理应届生求职信
2014/02/20 职场文书
2014国培学习感言
2014/03/05 职场文书
安全生产工作汇报
2014/10/28 职场文书
2014年行政部工作总结
2014/11/19 职场文书
《假如》教学反思
2016/02/17 职场文书
导游词之上饶龟峰
2019/10/25 职场文书