资源简介
此代码基于python实现了服务器/客户端的断点续传,可以作为网络编程中的参考。

代码片段和文件信息
#!/usr/bin/env python
# --coding = utf-8
# Author Allen Lee
import socket os json sys
import struct
import time
import sys
class Myclient():
# 在构造方法中启动client的socket对象以及连接server端
def __init__(self):
self.client = socket.socket()
self.client.connect((‘127.0.0.1‘ 9909))
# main为client的主方法,其中通过对用户输入的命令来判断具体操作,并通过反射将其引导到对应的方法
# !/usr/bin/python3
def clear(self):
os.system(‘cls‘)
def main(self):
while True:
res_data = self.client.recv(1024).strip()
if not res_data:
break
print(str(res_data encoding=‘utf-8‘))
print(‘请输入命令 put:发送文件\n‘)
send_data = input(‘>>: ‘).strip()
if not send_data:
continue
if hasattr(self send_data):
getattr(self send_data)(send_data)
else:
self.client.close()
# 当用户输入的不是指定的put方法时,退出
def put(self send_data):
pathh = input(‘Input the file’s path :‘)
# 首先判断文件是否存在,通过os.path.isfile来实现
ret = os.path.isfile(pathh)
if not ret:
print(‘The file is not exist‘)
return False
# 如果存在,则将操作类型、文件名、文件大小以字典形势格式化,再以json的方法进行格式化
else:
# 通过os.stat方法来取文件的大小
file_size = os.stat(pathh).st_size
file_name = os.path.basename(pathh)
self.client.send(bytes(send_dataencoding=‘utf-8‘))
time.sleep(1)
print(send_data)
print(file_name)
self.client.send(bytes(file_name encoding=‘utf-8‘))
time.sleep(1)
print(file_size)
self.client.send(str(file_size).encode(‘utf-8‘))
res_tag = str(self.client.recv(1024).decode(‘utf-8‘))
print(res_tag) ####打印接受的ok或continue
if not res_tag:
return False
if res_tag.startswith(‘ok‘):
# 上传文件只用r就够了
with open(pathh ‘rb‘) as f:
new_size = 0
scale = file_size//1024
while True:
try:
for i in range(scale + 1):
filedata = f.read(1024)
# print(filedata)
new_size += len(filedata)
if not filedata:
break
self.client.send(filedata)
self.progres(new_size file_size)
time.sleep(0.1)
except KeyboardInterrupt:
self.client.close()
if res_tag.startswith(‘continue‘):
with open(pathh ‘rb+‘) as f:
# 此处使用seek来进行文件指针的偏移,进而完成断点续传的功能
sendd_data
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5716 2018-11-18 19:55 c_f.py
文件 3580 2018-11-18 19:55 s_f.py
相关资源
- 二级考试python试题12套(包括选择题和
- pywin32_python3.6_64位
- python+ selenium教程
- PycURL(Windows7/Win32)Python2.7安装包 P
- 英文原版-Scientific Computing with Python
- 7.图像风格迁移 基于深度学习 pyt
- 基于Python的学生管理系统
- A Byte of Python(简明Python教程)(第
- Python实例174946
- Python 人脸识别
- Python 人事管理系统
- 基于python-flask的个人博客系统
- 计算机视觉应用开发流程
- python 调用sftp断点续传文件
- python socket游戏
- 基于Python爬虫爬取天气预报信息
- python函数编程和讲解
- Python开发的个人博客
- 基于python的三层神经网络模型搭建
- python实现自动操作windows应用
- python人脸识别(opencv)
- python 绘图(方形、线条、圆形)
- python疫情卡UN管控
- python 连连看小游戏源码
- 基于PyQt5的视频播放器设计
- 一个简单的python爬虫
- csv文件行列转换python实现代码
- Python操作Mysql教程手册
- Python Machine Learning Case Studies
- python获取硬件信息
评论
共有 条评论