python_day26__02__文件的传送
#Author:'haijing'#date:2018/11/14 #直接拖动一张图片到该软件的目录下#创建一个yuan的package,把该图片发送到yaun的package中去#文件传送,要告诉对方你要传送的文件的名字是什么,因为要在对方某个地方存储,没有名字怎么存储呢#还要告诉对方文件的大小是多少,以便于传送,(判断传送是否完成) #post_server服务端:在别人的哪里#必须线开启server端 import socket #socket是一个接口 内部封装了有关ip地址和端口号的信息 并且创建ip和端口号import subprocess #下面目前就使用一个类Popen,让代码在dos环境下运行import os sk = socket.socket() #创建一个socket对象s 服务端的sk对象和客户端的sk对象完全是不一样的address = ('127.0.0.1',8000) #设置一个元组,元组内放的是ip和端口号:8000sk.bind(address) #绑定ip和端口号,bind方法后跟的必须是一个元组sk.listen(3) #3表示服务端最多和三个客户端同时建立通信,但是传送信息的话只能是一个一个的来print('waiting...')BASE_DIR = os.path.dirname(os.path.abspath(__file__)) #那个post_server.py的上一级目录 while 1: conn,addr = sk.accept() # 客户端开启之后就一直在这里等待着 #接收将要接收的文件信息 data = conn.recv(1024) cmd,file_name,file_size = str(data,'utf8').split('|')#先将接收到的data转换为str类型的,再以竖线将str格式的data分开,分别传给三个变量 path = os.path.join(BASE_DIR,'yuan',file_name) #yuan是在post_server上级目录中一个包的名字 file_size = int(file_size) #接收要写入的文件 f = open(path,'ab') #a表示如果没有该路径path,那么就去创建该路径,b是以bytes类型写,打开文件 has_receive = 0 print('开始写入') while has_receive != file_size: data = conn.recv(1024) f.write(data) has_receive += len(data) f.close() print('写入成功')
#Author:'haijing'#date:2018/11/14 #post_client客户端#必须线开启server端#此代码可以执行输入的dos环境下的命令,并返回执行的命令的结果 import socketimport os sk = socket.socket() #创建socket对象 服务端的sk对象和客户端的sk对象完全是不一样的address = ('127.0.0.1',8000) #设置元组 里面放的是需要连接的服务器的ip地址sk.connect(address) #连接ip地址为127.0.0.1的服务端 BASE_DIR = os.path.dirname(os.path.abspath(__file__)) #post_client.py的上一级目录while 1: #jing发 不能发空,否则对方会停在阻塞的状态 inp_jing = input('>>>') #输入上传的命令,例如post|post.jpg 这里是相对路径 cmd,path = inp_jing.split('|') #以竖线将输入的内容分开,并分别传递给cmd和path path = os.path.join(BASE_DIR,path) #路径的拼接,生成要上传的文件的绝对路径 file_name = os.path.basename(path) #basename的作用是取到path最后的文件名字 例此时filename=post.jpg file_size = os.stat(path).st_size #拿到文件的大小,例post.jpg文件的大小 #发送文件信息 file_info = 'post|%s|%s' %(file_name,file_size) #字符串拼接 sk.sendall(bytes(file_info,'utf8')) #首先给server端发送要发送的命令和文件信息 #发送文件 # with open(path,'rb') as f #rb表示以bytes读 f = open(path,'rb') has_send = 0 print('开始发送') while has_send != file_size: data = f.read(1024) #一次读1024个字节的数据,以为是以bytes类型读的,所以是字节 sk.sendall(data) has_send +=len(data) f.close() print('发送成功') sk.close #关的此客户端是和服务端之间的通信通道,同样server端也是有关掉通信通道的能力,但是server端一般是不会关的
转载于:https://www.cnblogs.com/YiYA-blog/p/9960846.html
python_day26__02__文件的传送相关推荐
- 如何使用git上传文件到gitee以及大项目文件(超过100MB的文件如传送)remote: error: File: f422c55c723a183a1944cbec840c0171042(超详细)
目录 1.首先我们要先在gitee上创建一个仓库 2.其次要对仓库进行配置 3.仓库创建完成 4.配置git项目 5.提交文件到gitee的gitTeach仓库 超过100MB的大文件传送的方法 1. ...
- 服务器里面的文件怎么传送,FTP服务器怎么传送局域网文件
现如今,网络的使用已经十分普遍,同时也会有各种各样的局域网知识出现.比如,FTP服务器怎么传送局域网文件.学习啦小编在这里为大家详细介绍. 使用局域网传送文件的朋友也许都遇过这样的悲事,自己在拷贝移动 ...
- 使用你们的AirDisk产品会不会泄露文件给你们,会不会将文件数据传送到你们服务器?
我们只是提供一台设备,帮助您远程访问硬盘的数据,数据是在您的硬盘里,我们无法获取.为了最大保障数据安全,建议您设置访问密码,对重要的隐私文件进行加密,请不要忘记说明书上的PIN码,否则加密的文件无法打 ...
- ftp rush 可以连linux吗,文件FTP传送工具FTP Rush实用技巧
FTPRush功能越来越强大,奋力赶超老牌的CuteFTP和FlashFXP,成为FTP爱好者心目中最好的FTP客户端软件.下面是笔者在使用过程中总结的几个小技巧,希望能对各位FTPRush的忠实Fa ...
- 阿里旺旺我的文件上传服务器,阿里旺旺如何进行文件的传送
发送文件 有三种方法可以将您本地的文件发送给您的联系人: 方法一:在和联系人的聊天窗口中,点击工具栏中的"文件"按钮: 图示:http://www.alisoft.com/cmsr ...
- 两台centos之间传送文件
最近在CentOS系统中(主机A)读数据.由于A主机只是作为数据读取,具体的Deep Learning 实验,需要在主机B( CentOS )中进行,需要将主机A上的数据传输.由于主机A并不是一直开着 ...
- C++利用SOCKET传送文件
C++利用SOCKET传送文件 /*server.h*/ #pragma comment(lib, "WS2_32") #include <WinSock2.h> #i ...
- linux蓝牙传送的文件存放,嵌入式蓝牙文件传送方案的实现
蓝牙是一种低成本.短距离无线通信技术,工作频段使用全球统一开放的2.4 GHz的ISM频段[1],并将此频段分为79个跳频点,采用跳频技术,增强了蓝牙通信的可靠性.蓝牙技术现已被广泛应用于无线通信领域 ...
- linux备份文件到ftp上,Linux如何利用ssh传送文件至FTP空间进行备份
在Linux系统中,可通过ssh将文件传送到FPT空间中,将一些重要的数据进行备份,那么要如何实现文件的传送呢?小编给大家具体介绍下Linux利用ssh传送文件到FTP空间的方法. 步骤: 假设要备份 ...
最新文章
- ​超大规模时空数据的分布式存储与应用
- Matplotlib实例教程(十七)3D山体图
- OpenJ_Bailian 4148 生理周期
- async function_理解 Iterator, Generator 和 Async/Await
- SAP Fiori应用里Cross Application跳转的一些常见错误
- [Beego] [bootstrap-paginator]实现分页功能
- ASP.NET下QueryString不同字符编码间强制转换的解决方案
- 心得 : 面向对象和面向过程的区别【分享】
- 基于环境气象因素影响的异常就诊量预测
- 异常的总结 java 1615387415
- 键盘出现与消失的监听方法
- 五问唐骏:泡妞真的如你说的那么容易?
- 合成孔径雷达算法与实现_[SAR笔记0]合成孔径雷达成像算法与实现
- java栈顶元素_栈(Stack)
- java设计模式之装饰者模式
- 模拟恶劣网络环境常用的几种解决方案
- Windows核心编程_关闭Windows
- mysql-cluster5.7搭建集群(实际测试有效)
- 江苏计算机等级考试二级office题库,2020年江苏省计算机二级Office考试易考套餐:二级MS Office高级应用全程班(网课+题库)...
- 解决crontab定时任务多次执行
热门文章
- 自顶而下系统构架分析
- 第三百二十七天 how can I 坚持
- ubuntu-10.04的测试环境 安装测试 Coreseek开源中文检索引擎-Sphinx中文版
- D - 小晴天老师系列——晴天的后花园
- Android底部菜单栏 仿微博效果
- Galaxy nexus i9250 android 4.2 一键root
- c#3.0加入的一些新特性——泛型集合
- 苹果前置摄像头拍出来是反的怎么调_不用等了!屏下摄像头难攻克,明年还是挖孔屏...
- websphere安装应用失败_如何使用安卓手机给任天堂Switch安装游戏NSUSBloader mobile
- python3 for mac_PyCharm for Mac-PyCharm Mac版下载 V2018.3.2-PC6苹果网