p2p項目夭折,有種蛋蛋的憂傷。。
在高考完的暑假就在跟杰哥讨论怎样实现的校内p2p文件共享,就在今天。我们无奈的宣布差点儿夭折。
上图是測试图。
那时候的思路已经完好。就是:“学生上传共享文件到咱们工作室的server。server生成种子链接。用户使用软件进行下载。下载的时候优先搜索学校局域网内的电脑。检索相应文件”,我还具体写了Project分析。
可是由于仅仅有我一人写这软件,网络编程接触又不深。所以未能下定决心开干。
直到清明前。趁着有个软件设计大赛,我们两个便一口气报名參加并做p2p。
之后跟承天聊的时候,他也參加到我们来。
然后。我们3个就雄心勃勃的打算在20天内搞出来。我认为我们是非常好的合作团队,杰哥搞php后台。我和承天写软件。
途中遇到的一些技术问题。经过讨论和分析。都想到比較好的解决方法,除了穿透还有一层wifi内网那个还想不到好方法(我写过的文章:两个独立局域网的交流问题http: //blog.csdn.net/christopherwu/article/details/23714247)
上传文件仅仅是上传文件文件夹信息还有MD5,推断文件是否反复同样利用MD5.大文件利用中间10m来算出MD5.
还有,举出特别的样例:
1、A要下载Z文件。B,C,D多处有这个文件,将这文件固定分块。然后B负责发送1,C负责2,D负责3。保留max_number。当某人发送完,比方C。max_number+1返回给他。然后他继续max_number+1*block_size发送。
2、当仅仅有A有文件(如最新的电影),一下子有100以上的人到他那下载。须要,A把1给B,把2给C,B再把1转发给C。D,这样1传2,2传4
1我们都已经写了代码实现了。 。 。 。
我们还考虑到了,当某个时候,比方深夜,没有peer开着的时候。或者冷门资源,肯定须要备份资源。一開始打算初步上传不仅上传文件夹信息到server,还有文件在后台上传到server备份,再在某段时间删除超热门资源(冷门资源才须要备份)。
后来改成利用网盘Api,上传到网盘里,用php做成注冊验证开网盘。防止网盘像115那样夭折。我们还打算弄两个不同的网盘来备份。
还实用户积分制。鼓舞上传。下载加速;宿舍楼展示图,鼓舞交友。
迫使我们夭折的原因是:
1、没办法做到真正p2p,不是技术上的问题。而是用户。首先学校的用户少;其次。在资源上,除了游戏这些是长时间保留的,其它的差点儿用完就删除(比方电影)。这样子差点儿做不到p2p。什么是P2P精神?人人为我,我为人人!在P2P下载方式下,每一个用户既是下载者,也是上传者。这个才是最困难的地方。
2、上传目录。能够做到这个。可是文件大小,备份资源,目录反复性这3方面差点儿是解决不了的。可是,做成仅仅能上传文件,用户把文件压缩上传后就会删除源文件,这样又无法p2p了。 。
这样子,差点儿又变成了仅仅有一个源提供资源,丧失p2p的优势了。
这是深入项目后才发现的问题,好无奈。眼下还想不到好办法。好无奈啊!好不甘心。
我们都是按自己的想法来设计实现p2p的。最后却这样结束。
之前我们工作室有类似的资源共享(是用ftp下载形式),可是server硬盘坏了好几个。负责上传的那几个拥有特别帐号的人管不了,最主要是server全然死掉了。
我们才做p2p的。
。
p2p項目夭折,有種蛋蛋的憂傷。。的更多相关文章
- p2p項目”復活“之想
http://blog.csdn.net/christopherwu/article/details/23976503 原來以為p2p項目就要夭折,墮入絕望無奈的深淵之時,與多位朋友的交流,抬頭看見了 ...
- 在項目中快速部署SLF4J+LOGBACK
想了解SLF4J,LOGBACK是什么?可以访问:http://www.slf4j.org/ http://logback.qos.ch/ 本文大部分参考了Cody Burleson<Ho ...
- 「Ionic」創建新項目
1.創建新項目 创建一个名为myApp的还有tabs的项目(ionic start <project-name> <optional-template>) 可选模板为sidem ...
- 如何在版本控制工具中管理Sencha Architect的項目
根據數次痛苦的經歷結合stack overflow上的解答,發現原來還是可以使用svn.git之類的版本控制工具管理Sencha Architect生成的項目的. 具體的要點如下,假定項目記作{PRO ...
- ionic3 环境配置 + 運行第一個項目
1.首先我們先下載個 nodejs安裝包 地址:https://nodejs.org/en/ 安裝 檢查是否安裝成功,打開命令提示符 輸入 node -v 回車 查看版本 結果: 2.安裝ionic ...
- 樹莓派3B運行.Net Core2.1 Web 項目
安裝.Net Core 運行時和SDK(非必選) 下載地址 安裝 # 安裝運行時 sudo apt-get -y update # Install the packages necessary for ...
- 部署ASP.Net Core 2.1 項目到 IIS
用Asp.net core 2.1 寫了一個小的系統框架,記錄一下部署過程: 1. 首先是安裝 IIS 了,從 控制面板→程序→启用或关闭Windows功能→勾选Internet Informatio ...
- 使用TFS創建團隊項目
使用微軟賬號登錄Team Service,關聯一個TS賬戶,用來存放你所有的項目,可以從瀏覽器中直接訪問,地址類似yourname.visualstudio.com. 詳細鏈接 在TS賬戶主面板中,可 ...
- Maven項目打包報錯:Plugin execution not covered by lifecycle configuration
Maven項目打包報錯:Plugin execution not covered by lifecycle configuration 使用Eclipse导入一个新的maven项目时不时的会遇到这个错 ...
随机推荐
- 洛谷P3254 圆桌问题 网络流_二分图
Code: #include<cstdio> #include<algorithm> #include<vector> #include<queue> ...
- 路飞学城Python-Day12(practise)
# 函数基础# 1.写函数,计算传入数字参数的和(动态传参)# def sum_num(x,y):# return x+y# print(sum_num(1,2))# 2.写函数,用户传入修改的文件名 ...
- [agc015c]nuske vs phantom thnook
题意: 有一个n*m的网格图,每个格子是蓝色或白色.四相邻的两个格子连一条边,保证蓝格子构成一个森林. 有q组询问,每次询问给出一个矩形,问矩形内蓝格子组成的联通块个数. $1\leq n,m\leq ...
- UVA-1347 Tour 动态规划 难以确定的状态
题目链接:https://cn.vjudge.net/problem/UVA-1347 题意 给出按x坐标排序的几个点. 欲从最左边不回头的走到最右边,然后再返回最左边. 每个点都要被访问,且只能经过 ...
- 洛谷——P3370 【模板】字符串哈希
题目描述 如题,给定N个字符串(第i个字符串长度为Mi,字符串内包含数字.大小写字母,大小写敏感),请求出N个字符串中共有多少个不同的字符串. 友情提醒:如果真的想好好练习哈希的话,请自觉,否则请右转 ...
- Linux之我最常用的20条命令
Linux之我最常用的20条命令 玩过 Linux的人都会知道, Linux中的命令的确是非常多,但是玩过 Linux的人也从来不会因为 Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的 ...
- SharePoint Search之(七)Search result- 结果源
在使用搜索引擎的时候.非常多情况下,用户希望限定一下搜索范围,以便更加easy找到想要的结果. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU1BGYXJ ...
- Django Admin site 显示问题
Django Admin site 显示问题 今天配置了一下Django admin site,可是admin site的显示有一些问题,当我打开源码.訪问里面的admin 的css 文件时候,htt ...
- Spring 4 CustomEditorConfigurer Example--转
原文地址:http://howtodoinjava.com/spring/spring-core/registering-built-in-property-editors-in-spring-4-c ...
- java9新特性-3-JDK 和 JRE 的改变
1.JDK 与 JRE 的关系 JDK :JavaDevelopmentKit (Java开发工具包) JRE :JavaRuntimeEnvironment (Java运行环境) 说明: J ...