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和C++求解方法
Aug 20 Python
对pandas处理json数据的方法详解
Feb 08 Python
python简单验证码识别的实现方法
May 10 Python
Python shelve模块实现解析
Aug 28 Python
python实现上传文件到linux指定目录的方法
Jan 03 Python
Python celery原理及运行流程解析
Jun 13 Python
Python Switch Case三种实现方法代码实例
Jun 18 Python
Python正则re模块使用步骤及原理解析
Aug 18 Python
安装Anaconda3及使用Jupyter的方法
Oct 27 Python
使用Python解析Chrome浏览器书签的示例
Nov 13 Python
梳理总结Python开发中需要摒弃的18个坏习惯
Jan 22 Python
python游戏开发之pygame实现接球小游戏
Apr 22 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函数utf8转gb2312编码
2006/12/21 PHP
fleaphp rolesNameField bug解决方法
2011/04/23 PHP
Yii针对添加行的增删改查操作示例
2016/10/18 PHP
thinkPHP5.0框架模块设计详解
2017/03/18 PHP
PHP数组内存利用率低和弱类型详细解读
2017/08/10 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
jquery 学习笔记一
2010/04/07 Javascript
网页打开自动最大化的js代码
2012/08/22 Javascript
js控制鼠标事件移动及移出效果显示
2014/10/19 Javascript
使用JavaScript实现弹出层效果的简单实例
2016/05/31 Javascript
Js得到radiobuttonlist选中值的两种方法(推荐)
2016/08/25 Javascript
jQuery内存泄露解决办法
2016/12/13 Javascript
bootstrap日历插件datetimepicker使用方法
2016/12/14 Javascript
JS实现直接运行html代码的方法
2017/03/13 Javascript
JavaScript实现一个空中避难的小游戏
2017/06/06 Javascript
简单谈谈require模块化jquery和angular的问题
2017/06/23 jQuery
bootstrap 通过加减按钮实现输入框组功能
2017/11/15 Javascript
微信小程序外卖选购页实现切换分类与数量加减功能案例
2019/01/15 Javascript
JavaScript实现背景自动切换小案例
2019/09/27 Javascript
Python3中使用PyMongo的方法详解
2017/07/28 Python
matplotlib作图添加表格实例代码
2018/01/23 Python
django允许外部访问的实例讲解
2018/05/14 Python
Python HTML解析模块HTMLParser用法分析【爬虫工具】
2019/04/05 Python
python修改字典键(key)的方法
2019/08/05 Python
如何基于python实现脚本加密
2019/12/28 Python
对Python 字典元素进行删除的方法
2020/07/31 Python
Tory Burch英国官方网站:美国时尚生活品牌
2017/12/06 全球购物
给分销商的致歉信
2014/01/14 职场文书
巡警年度自我鉴定
2014/02/21 职场文书
《北大荒的秋天》教学反思
2014/04/14 职场文书
新农村建设汇报材料
2014/08/15 职场文书
居委会工作总结2015
2015/05/18 职场文书
2015年度内部审计工作总结
2015/05/20 职场文书
环保建议书作文400字
2015/09/14 职场文书
Python内置数据结构列表与元组示例详解
2021/08/04 Python