sinat_27758171 2016-05-20 03:40 采纳率: 0%
浏览 2081

c/c++ socket实现网盘

老师布置这样一个作业,以Linux作服务器做一个网盘,要求断点续传和多用户上传同一文件,有几个问题没想明白,想问问。
1、断点续传的话,应该可以通过记录已上传文件的大小来实现。client上传文件的时候,server回复已上传的大小,然后client就跳过已上传的部分。
2、但是,多用户上传同一个文件要怎么实现?怎么把一个大文件的不同部分分配给各个client分别上传?如果上传期间有新的client上传,或者正在上传的client退出,原来的分配计划也要动态更改。
我目前的想法是,server收到上传的请求后,得到文件的大小,然后把文件分成若干个固定大小(m 字节)的块。然后server发送一个块号k给client,client就发送文件的第k块给server。server再根据块号的大小顺序保存client发来的数据。多个用户同时上传时,server就依次发送不同的块号给各个client。
我想问问有没有更好的方案。

  • 写回答

1条回答 默认 最新

  • NK_test 博客专家认证 2016-05-20 10:24
    关注

    转换思维,客户端自己记录文件下载的偏移量,断点续传的时候携带偏移量发送给服务端

    评论

报告相同问题?

悬赏问题

  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?