一定要开发出一个文件共享软件,发帖为证
主要功能:
支持文件的分享与下载
细节:
1,文件/目录共享
2,私密通道传输
3,好友加速通道传输
4,对话/群聊
5,支持bt协议
性能要求:
1,带宽切换
2,资源战胜低
3,聊天支持贴图,放音乐
4.高度安全,加密传输
5,高性能
优先开发文件共享与传输,其次界面,其次聊天。
开发时长:半年
开发人数1–3人
技术选择:
1,编程语言c++/boost
2,界面,nodejs + xml + opengles
3,数据库:服务器选用mysql,本地选择sqlite
4, 络库asio/libevent待定
5.服务器管理工具,C#开发
6,编译与打包脚本nsis/python
7,开发工具, linux vim /sourceinsight windows/vs 08 or 12
8,支持平台,windows
9,界面开发工具,界面ide+notepad++
10,文档:word, starUml
11, google code svn
12,测试环境,暂定。
13,开发顺序:由内到外,由主到次
14,层次要分明,以利于跨平台,或替换
15.日志.log4cplus
框架:
服务器端:
1,资源表:
包括文件的id, 文件标识,文件的名称,文件大小,文件类型等,文件的片标识id,分片大小
2,资源用户表:
资源作为key, 资源的用户列表,(资源可包括文件标识和文件片标识)
3,在线用户列表
用户的连接数,用户是否超级种子,用户的文件,用户的 速,用户的带宽,用户的模式(全速或上 等模式)
4,用户资源表:
表2的反序,以用户作为key,资源列表。
5用户表:
用户的令牌,用户的唯一标识/临时标识。用户的注册信息。级别等(与聊天整合,包括好友/群等)
用户需要定时上 状态,以便服务器作调度,及其它用户作下载源选择,服务器并以此作用户在线状态判定。上 的内容放在在线用户列表中。
客户端:
1,界面类似于 络蚂蚁或迅雷。
2,用户为对方建立专用通道(高速通道),优先对此客方传输。
3,反吸血
4,用户之间传输的文件可以是服务器不知道的
5,用户可以在既有协议上走自己定义的协议,服务器退化成一个代理或打洞的,这样可以方便扩展出聊天功能,及反封杀。
6,服务器只定义基本的协议,其它的以插件的方式提供(参见上一条款)
7,协议优先级,p2s > p2p
8,客户端的界面问题:先实现基本功能,以后再迭代或重构
协议:
1上 :
隐含登记。 上 络状态及资源
先上 资源id,服务器发现没有则上传资源内容《支持单个和多个》。第一遍无条件上 内容,以后用简单资源上 协议
请求分配peer协议:带有文件或文件片的唯一标识
资源查询
服务器返回peer协议, 服务器选择peer的策略
服务器拒绝协议
打洞的协议
自定义协议
文件传输,请求块。
以上的协议包括p2s和p2p
实现:
1,模块
包括:打洞层 文件传输层, p2p交互层, 文件本地处理层。 协议层,管理调度层
ui层,数据库操作层,状态统计上 。调试展示接口层。
文章知识点与官方知识档案匹配,可进一步学习相关知识MySQL入门技能树数据库组成表32946 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!