ftp上传小示例

客户端

 1 import socket
 2 import os
 3 import json
 4 import struct
 5 #上传文件即发送我的数据,服务端来保存,保存的时候需要按照我的描述信息来
 6 #所以需要先发送文件的描述信息:文件名和文件大小
 7
 8 client = socket.socket()
 9 client.connect((‘121.195.167.34‘,8004))
10
11 file_size = os.path.getsize(r‘E:\bilibili下载\老男孩所有正式项目\粘包解决2服务端.py‘)
12
13 #先发送文件的描述信息:文件名和文件大小
14 file_info = {‘filename‘:‘粘包解决2服务端.py‘,
15              ‘file_size‘:file_size}
16
17 #发送需要bytes,字典无法直接过去,需要json先转成json字符串再把字符串转bytes
18 file_str = json.dumps(file_info)
19 file_info_bytes = file_str.encode(‘utf-8‘)
20
21 #为了防止粘包,先把文件描述信息的长度打包成4字节长度的内容,
22 #再把这个4字节内容和真正的文件的描述信息打包发送
23 info_len = len(file_info_bytes)
24 info_len_struct = struct.pack(‘i‘,info_len)
25 client.send(info_len_struct + file_info_bytes)
26
27
28 #准备发送文件真实数据,因为此时服务端已经准备好了接受文件信息里提到的文件长度
29 sum = 0
30 with open(‘粘包解决2服务端.py‘,‘rb‘) as f:
31     while sum < file_size:   #循环结束条件
32         #每次读取的长度
33         every_read = f.read(5)
34         sum += len(every_read)
35         client.send(every_read)
36         #累加统计文件每次读取的累计值

服务端

 1 import socket
 2 import struct
 3 import json
 4
 5 server = socket.socket()
 6 server.bind((‘121.195.167.34‘,8004))
 7 server.listen()
 8 conn,addr = server.accept()
 9
10 #首先接受描述信息的长度
11 file_struct = conn.recv(4)
12 file_info_len = struct.unpack(‘i‘,file_struct)[0]
13
14
15 #接受对应的长度的内容,将其转化为字典模式的描述信息
16 file_info_bytes = conn.recv(file_info_len)
17 file_info_json = file_info_bytes.decode(‘utf-8‘)
18 file_info = json.loads(file_info_json)
19 21 recv_sum = 0
22
23 file_path = ‘E:\\bilibili下载‘+ ‘\\‘ + file_info[‘filename‘]
24
25 with open(file_path,‘wb‘) as f:
26     while recv_sum < file_info[‘file_size‘]:
27         every_recv = conn.recv(5)
28         f.write(every_recv)
29         recv_sum += len(every_recv)

原文地址:https://www.cnblogs.com/shachengcc1/p/11293868.html

时间: 2024-10-09 02:21:27

ftp上传小示例的相关文章

基于nodeJs express 框架的图片上传和编辑(引用美图编辑工具)上传小示例

唉,由于近期工作中对于新知识的运用相对较少,也导致小码哥少有更新鄙人心得的机会.还望路过的基友们不要抱怨,勿喷,,,,, 本篇文章,是基于NodeJs Express框架完成的一个用于项目中图片上传和编辑上传的小示例,当然,由于项目工期不禁,都是在非工作时间慢慢完成的,导致至今该图片上传功能也未能插入项目中真正的验证最终效果.不过就小码哥感觉,基本思路及基本功能算是完成了. 下面便由小码哥来给基友们稍微讲解改功能的实现过程及其中用到的一些技术等等. 首先,说说NodeJs Express框架的搭

01 ftp上传简单示例服务端

import json import socket import struct server = socket.socket() server.bind(('127.0.0.1',8001)) server.listen() conn,addr = server.accept() #首先接收文件的描述信息的长度 struct_data_len = conn.recv(4) data_len = struct.unpack('i',struct_data_len)[0] # 通过文件信息的长度将文

python之路--FTP 上传视频示例

# 服务端 import json import socket import struct server = socket.socket() server.bind(('127.0.0.1',8001)) server.listen() conn,addr = server.accept() #首先接收文件的描述信息的长度 struct_data_len = conn.recv(4) data_len = struct.unpack('i',struct_data_len)[0] # 通过文件信

python之实现ftp上传下载代码(含错误处理)

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之实现ftp上传下载代码(含错误处理) #http://www.cnblogs.com/kaituorensheng/p/4480512.html#_label2 import ftplib import socket import os def ftpconnect(ftp_info): try: ftp = ftplib.FTP(ftp_info[0]) except (socket.er

python之模块ftplib(实现ftp上传下载代码)

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块ftplib(实现ftp上传下载代码) #需求:实现ftp上传下载代码(不含错误处理) from ftplib import FTP def ftpconnect(): ftp_server='ftp.python.org' ftp=FTP() ftp.set_debuglevel(2)#打开调式级别2 ftp.connect(ftp_server,21) ftp.login('',''

ftp上传与下载

在企业级应用系统中,文件上传与下载是最常用的功能之一.当然,这些文件也是有存储周期,根据业务需要而定. 驾驶员培训管理系统(简称驾培系统)需要判断学员学时的有效性,通过学时记录仪,采集学员在教练车中里照片, 上传到web服务器中,由web服务器上传到文件服务器,,比便做人脸比对..为保证学时的实时性,这期间会产生多次比对,当 然也会产生许多学员人脸照片.为方便管理这些照片,我们会采用分层级目录来存放照片. 这里主要介绍基于commons-net实现ftp创建文件夹.上传.下载功能. 创建文件夹

Java实现FTP上传下载功能

Java FTP客户端工具包很多,在此我选用的Apache的FTPClient.这个包的获取可以通过http://commons.apache.org/net/来获取,我使用的是最新的commons-net-1.4.1.zip.其中包含了众多的java网络编程的工具包,官方文档列举如下: 1.支持网络协议如下: FTP.NNTP. SMTP.POP3.Telnet.TFTP.Finger.Whois.rexec/rcmd/rlogin.Time (rdate) and Daytime.Echo.

Java开源内容管理CMS系统J4CMS支持静态化直接ftp上传到你的空间了

页面可直接编辑的cms系统j4cms可以直接支持使用ftp 输出 html到你的空间了 真正的静态化 这是静态化后的网站 http://www.j4cms.com/ 源码上传至csdn了,可以下载源码 这是地址 http://download.csdn.net/detail/sdjn_jiangxiaobei/7576025 Java开源内容管理CMS系统J4CMS支持静态化直接ftp上传到你的空间了,布布扣,bubuko.com

再看ftp上传文件

前言 去年在项目中用到ftp上传文件,用FtpWebRequest和FtpWebResponse封装一个帮助类,这个在网上能找到很多,前台使用Uploadify控件,然后在服务器上搭建Ftp服务器,在本地测试程序上传到ftp服务器一点问题都没有,奇怪的是当发布Web和ftp到同一个IIS下,上传文件时程序直接卡死,然后页面卡死,后来我又发现把Web和ftp分开发布在两台机器上问题又得到解决,所以当时放弃了这个方案. 再看ftp上传文件 前几天偶然看到Wolfy写到一个项目总结,其中提到了用Ser