速盘项目(speed盘)
1、客户端与服务器连接成功后,都执行相同的业务逻辑,(任务队列中的任务都是相同的)。
首先判断是什么请求。
如果是登录请求,查询mysql,查询在线用户set集合,如果此用户已经在线了,返回客户端已经异地登录关闭连接。防止多机同时登录。
如果是上传下载文件请求,客户端开启线程使用异步的方式进行文件上传,支持多文件同时上传下载。客户端传给服务器自己的user对象,服务器判断set集合有没有这个用户,是否在线,如果不在线,认为此请求是网络攻击。如果此用户已经在线,此请求合法,客户端查询本地文件如果存在此文件名,则进行断点续传,否则进行文件上传。由于fastdfs不支持断点重传,upload函数只能返回是否上传成功,所以客户端不能直接上传文件到fastdfs,这样不能实现断点重传的功能。客户端和服务器进行tcp通信,服务器保存临时文件,传输完毕之后,服务器把临时文件上传到fastdfs,更新数据库的文件信息表,删除临时文件。
2、为什么要保持长连接?
因为服务器要时刻知晓客户端是否是登录状态,只有在登录状态下才可以进行文件传输。防止黑客编程直接访问进行文件上传,攻击服务器。
3、保存偏移量
客户端send函数只是把数据放入到缓冲区,由滑动窗口和拥塞窗口来决定何时发送,如果直接放入send就认为发送成功是不可取的。而且服务器接接收数据之后,要把数据写入临时文件,如果写入失败呢,如何保证数据的落盘。可以自己设计应用层协议,当服务器写入临时文件成功之后,服务器把文件的末尾偏移量发送给客户端做保存。
速盘项目(speed盘)相关推荐
- 效率工具 001| 手把手教你满速下载百度网盘文件
内容目录 PanDownload网页版 PanDownload电脑版 PanDownload 手机版 BaiduPCS-Go BaiduPCS-Web 速盘 最后想说的话 百度网盘,曾用名百度云(Ba ...
- 什么叫做罗列式_项目起盘的时候,如何确定自己该做什么社群?
这是祁杰『社群日记』第48篇持续日更,做最懂社群的营销咨询人很多人手上有资源,准备起盘项目的时候,总会思考一个问题:我能做什么样的社群?今天我们从用户需求出发,拆解一下哪些社群是能够确切地满足用户的需 ...
- 如何打造一个可躺赚的网盘项目,每天只需要2小时
推荐阅读1:[创业粉引流变现项目] 推荐阅读2:[IT互联网如何网赚引流] 推荐阅读3:[IT互联网创业项目教程] 今天给小伙伴们分享一个可持续时间长,可积累性的网赚项目--网赚网盘项目. 网盘作为当 ...
- 【网盘项目日志】Seafile 源码部署和安装命令
由于网盘项目一直在更新,旧的安装指南已经过时,需要新的指南. 文章目录 信息 创建 Docker 容器 安装中文语言 安装先决条件 准备数据库 下载源文件 编译并安装 创建配置文件 启动 Seafil ...
- 从零开始速通百度云网盘
原文链接:CCR39のLazyNest 相信大家在网上冲浪时时常会下载一些资源.软件,如果你需要下载别人分享的资源时,就需要用到网盘. 百度云网盘由于早期在国内占据了一定规模的市场,拥有大量的资源与链 ...
- 联想私有云盘成功中标布丁酒店浙江股份有限公司云盘项目
近日,联想私有云盘成功中标布丁酒店浙江股份有限公司云盘项目,联想私有云盘将为其提供安全.协同且高效的一站式数据统一管理平台. 项目背景及需求 布丁酒店隶属杭州住友酒店管理有限公司,为中国第一家时尚且概 ...
- 以太坊天价手续费转账真相:资金盘项目GoodCycle上演误杀瞒天记!
来源:PeckShield 此前有一部改编自印度<误杀瞒天记>的电影<误杀>上映后受到了广大用户的一致好评,其讲述了主角在发生误杀行为后,通过混淆时空.伪造证据等蒙太奇的手法成 ...
- 基于linux 和qt 的 c ++跨平台云盘项目
跨平台网盘 概述 基于tcp连接,实现跨平台网盘项目,服务器采用linux开发,客户端使用qt进行开发,实现了,注册,登录,上传文件的功能 技术点 网络部分采用了epoll 模型 加 reactor ...
- SpringBoot 2.x 纯手工打造私人网盘项目
点击▲关注 "爪哇笔记" 给公众号标星置顶 更多摄影技巧 第一时间直达 简介 基于 SpringBoot2.x + elFinder 搭建的私有云盘服务,功能堪比某度网盘,丰富 ...
- 视频教程-C++微服务架构及安全云盘项目实训-C/C++
C++微服务架构及安全云盘项目实训 夏曹俊:南京捷帝科技有限公司创始人,南京大学计算机硕士毕业,有15年c++跨平台项目研发的经验,领导开发过大量的c++虚拟仿真,计算机视觉,嵌入式图像处理,云安全审 ...
最新文章
- 《我想进大厂》之Spring夺命连环10问
- 3.11上午课程重点
- 参加“北向峰会”后对SOC之感言
- mpi4py多进程实例/举例
- 安卓AS_git 进行更新远程分支
- c++ doxygen 注释规范_[代码规范]Go语言编码规范指导
- 【机器学习】机器学习模型解释神器:Shapash
- python(numpy,pandas1)——numpy(ndim,shape,size,zero, empty, arange, linspace)
- 【Linux系统编程】进程间通信之命名管道
- 使用wireshark抓取3G包
- java 易变变量_关于java:易变变量和其他变量
- 【Transformer】TransGAN的鉴别器的理解
- 华为手机设置页面黑色_华为手机设置里面的这些功能你都知道吗?
- -bash: findstr: command not found 问题解决
- UI设计需要用到哪些软件工具呢?
- 程序人生——苏嵌第六天
- 知乎android客户端drawer布局探究
- 这篇文章能让你明白经验模态分解(EMD)——基础理论篇
- tring转换成Integer numberformatexception 分析
- 学习TypeScrip1(基础类型)