1、客户端与服务器连接成功后,都执行相同的业务逻辑,(任务队列中的任务都是相同的)。
首先判断是什么请求。
如果是登录请求,查询mysql,查询在线用户set集合,如果此用户已经在线了,返回客户端已经异地登录关闭连接。防止多机同时登录。
如果是上传下载文件请求,客户端开启线程使用异步的方式进行文件上传,支持多文件同时上传下载。客户端传给服务器自己的user对象,服务器判断set集合有没有这个用户,是否在线,如果不在线,认为此请求是网络攻击。如果此用户已经在线,此请求合法,客户端查询本地文件如果存在此文件名,则进行断点续传,否则进行文件上传。由于fastdfs不支持断点重传,upload函数只能返回是否上传成功,所以客户端不能直接上传文件到fastdfs,这样不能实现断点重传的功能。客户端和服务器进行tcp通信,服务器保存临时文件,传输完毕之后,服务器把临时文件上传到fastdfs,更新数据库的文件信息表,删除临时文件。

2、为什么要保持长连接?
因为服务器要时刻知晓客户端是否是登录状态,只有在登录状态下才可以进行文件传输。防止黑客编程直接访问进行文件上传,攻击服务器。

3、保存偏移量
客户端send函数只是把数据放入到缓冲区,由滑动窗口和拥塞窗口来决定何时发送,如果直接放入send就认为发送成功是不可取的。而且服务器接接收数据之后,要把数据写入临时文件,如果写入失败呢,如何保证数据的落盘。可以自己设计应用层协议,当服务器写入临时文件成功之后,服务器把文件的末尾偏移量发送给客户端做保存。

速盘项目(speed盘)相关推荐

  1. 效率工具 001| 手把手教你满速下载百度网盘文件

    内容目录 PanDownload网页版 PanDownload电脑版 PanDownload 手机版 BaiduPCS-Go BaiduPCS-Web 速盘 最后想说的话 百度网盘,曾用名百度云(Ba ...

  2. 什么叫做罗列式_项目起盘的时候,如何确定自己该做什么社群?

    这是祁杰『社群日记』第48篇持续日更,做最懂社群的营销咨询人很多人手上有资源,准备起盘项目的时候,总会思考一个问题:我能做什么样的社群?今天我们从用户需求出发,拆解一下哪些社群是能够确切地满足用户的需 ...

  3. 如何打造一个可躺赚的网盘项目,每天只需要2小时

    推荐阅读1:[创业粉引流变现项目] 推荐阅读2:[IT互联网如何网赚引流] 推荐阅读3:[IT互联网创业项目教程] 今天给小伙伴们分享一个可持续时间长,可积累性的网赚项目--网赚网盘项目. 网盘作为当 ...

  4. 【网盘项目日志】Seafile 源码部署和安装命令

    由于网盘项目一直在更新,旧的安装指南已经过时,需要新的指南. 文章目录 信息 创建 Docker 容器 安装中文语言 安装先决条件 准备数据库 下载源文件 编译并安装 创建配置文件 启动 Seafil ...

  5. 从零开始速通百度云网盘

    原文链接:CCR39のLazyNest 相信大家在网上冲浪时时常会下载一些资源.软件,如果你需要下载别人分享的资源时,就需要用到网盘. 百度云网盘由于早期在国内占据了一定规模的市场,拥有大量的资源与链 ...

  6. 联想私有云盘成功中标布丁酒店浙江股份有限公司云盘项目

    近日,联想私有云盘成功中标布丁酒店浙江股份有限公司云盘项目,联想私有云盘将为其提供安全.协同且高效的一站式数据统一管理平台. 项目背景及需求 布丁酒店隶属杭州住友酒店管理有限公司,为中国第一家时尚且概 ...

  7. 以太坊天价手续费转账真相:资金盘项目GoodCycle上演误杀瞒天记!

    来源:PeckShield 此前有一部改编自印度<误杀瞒天记>的电影<误杀>上映后受到了广大用户的一致好评,其讲述了主角在发生误杀行为后,通过混淆时空.伪造证据等蒙太奇的手法成 ...

  8. 基于linux 和qt 的 c ++跨平台云盘项目

    跨平台网盘 概述 基于tcp连接,实现跨平台网盘项目,服务器采用linux开发,客户端使用qt进行开发,实现了,注册,登录,上传文件的功能 技术点 网络部分采用了epoll 模型 加 reactor ...

  9. SpringBoot 2.x 纯手工打造私人网盘项目

    点击▲关注 "爪哇笔记"   给公众号标星置顶 更多摄影技巧 第一时间直达 简介 基于 SpringBoot2.x + elFinder 搭建的私有云盘服务,功能堪比某度网盘,丰富 ...

  10. 视频教程-C++微服务架构及安全云盘项目实训-C/C++

    C++微服务架构及安全云盘项目实训 夏曹俊:南京捷帝科技有限公司创始人,南京大学计算机硕士毕业,有15年c++跨平台项目研发的经验,领导开发过大量的c++虚拟仿真,计算机视觉,嵌入式图像处理,云安全审 ...

最新文章

  1. 《我想进大厂》之Spring夺命连环10问
  2. 3.11上午课程重点
  3. 参加“北向峰会”后对SOC之感言
  4. mpi4py多进程实例/举例
  5. 安卓AS_git 进行更新远程分支
  6. c++ doxygen 注释规范_[代码规范]Go语言编码规范指导
  7. 【机器学习】机器学习模型解释神器:Shapash
  8. python(numpy,pandas1)——numpy(ndim,shape,size,zero, empty, arange, linspace)
  9. 【Linux系统编程】进程间通信之命名管道
  10. 使用wireshark抓取3G包
  11. java 易变变量_关于java:易变变量和其他变量
  12. 【Transformer】TransGAN的鉴别器的理解
  13. 华为手机设置页面黑色_华为手机设置里面的这些功能你都知道吗?
  14. -bash: findstr: command not found 问题解决
  15. UI设计需要用到哪些软件工具呢?
  16. 程序人生——苏嵌第六天
  17. 知乎android客户端drawer布局探究
  18. 这篇文章能让你明白经验模态分解(EMD)——基础理论篇
  19. tring转换成Integer numberformatexception 分析
  20. 学习TypeScrip1(基础类型)

热门文章

  1. 英特尔傲腾内存linux,英特尔傲腾技术挺简单 三分钟了解这项黑科技
  2. WinCE 下鼠标键盘驱动分析
  3. php 高斯分布,多元高斯分布完全解析
  4. java中的线程模型_Java 线程模型
  5. 你知道项目管理有哪些分类和体系吗?
  6. 华为推送服务(Push)
  7. 黑、白盒测试 和 动、静态测试
  8. android加载obj文件,android – 从SD卡Rajawali解析.obj模型
  9. oracle odac 客户端 区别,ODAC使用指南 (一)ODAC常见问题集
  10. ImageOptim-无损图片压缩Mac版