admin管理员组文章数量:1573383
一定要开发出一个文件共享软件,发帖为证
主要功能:
支持文件的分享与下载
细节:
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层,数据库操作层,状态统计上报。调试展示接口层。
版权声明:本文标题:文件共享软件。。 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1727748375a1128059.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论