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二分查找详解
Sep 13 Python
Pycharm学习教程(3) 代码运行调试
May 03 Python
深入学习Python中的上下文管理器与else块
Aug 27 Python
Django ORM框架的定时任务如何使用详解
Oct 19 Python
详解Python 装饰器执行顺序迷思
Aug 08 Python
利用PyCharm Profile分析异步爬虫效率详解
May 08 Python
Flask框架路由和视图用法实例分析
Nov 07 Python
Tensorflow实现多GPU并行方式
Feb 03 Python
Python实现检测文件的MD5值来查找重复文件案例
Mar 12 Python
Python环境使用OpenCV检测人脸实现教程
Oct 19 Python
Python道路车道线检测的实现
Jun 27 Python
Django框架之路由用法
Jun 10 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/05/29 PHP
PHP匿名函数和use子句用法实例
2016/03/16 PHP
PC端微信扫码支付成功之后自动跳转php版代码
2017/07/07 PHP
Yii框架通过请求组件处理get,post请求的方法分析
2019/09/03 PHP
JavaScript面向对象(极简主义法minimalist approach)
2012/07/17 Javascript
使用js显示当前时间示例
2014/03/02 Javascript
jQuery实现自定义下拉列表
2015/01/05 Javascript
JavaScript实现输入框(密码框)出现提示语
2016/01/12 Javascript
JS实现的手机端精简幻灯片效果
2016/09/05 Javascript
D3.js进阶系列之CSV表格文件的读取详解
2017/06/06 Javascript
jquery动态赋值id与动态取id方法示例
2017/08/21 jQuery
Spring Boot/VUE中路由传递参数的实现代码
2018/03/02 Javascript
微信小程序实现日历效果
2018/12/28 Javascript
微信小程序 调用微信授权窗口相关问题解决
2019/07/25 Javascript
Javascript Web Worker使用过程解析
2020/03/16 Javascript
如何在vue中使用百度地图添加自定义覆盖物(水波纹)
2020/11/03 Javascript
[47:21]Liquid vs TNC Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
Python读取ini文件、操作mysql、发送邮件实例
2015/01/01 Python
详解Python的Django框架中Manager方法的使用
2015/07/21 Python
Python 多线程抓取图片效率对比
2016/02/27 Python
老生常谈python的私有公有属性(必看篇)
2017/06/09 Python
Python内建函数之raw_input()与input()代码解析
2017/10/26 Python
把pandas转换int型为str型的方法
2019/01/29 Python
Python 窗体(tkinter)按钮 位置实例
2019/06/13 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
2019/07/19 Python
详解Python中的正斜杠与反斜杠
2019/08/09 Python
Python环境Pillow( PIL )图像处理工具使用解析
2019/09/12 Python
浅谈CSS3中的变形功能-transform功能
2017/12/27 HTML / CSS
求职信的要素有哪些呢
2013/12/26 职场文书
幼儿园消防安全制度
2014/01/26 职场文书
民政局离婚协议书范本
2014/10/20 职场文书
2014年作风建设剖析材料
2014/10/23 职场文书
裁员通知
2015/04/25 职场文书
银行文明优质服务培训心得体会
2016/01/09 职场文书
小学运动会开幕词
2016/03/04 职场文书
Python实现学生管理系统(面向对象版)
2021/06/24 Python