SailPlayer是一款非常简单的P2P网络传输软件,该软件耗费个人不少精力时间而研发,如果你是一名对P2P网络有研究的个人开发者,相信会对这套系统感兴趣。
【软件特色】
1、完全没有任何中间服务器
2、支持IPV6和IPV4
3、当任意2台设备有“外网传输”交集(包括内网和外网交集),将会彼此共享资源
4、类似磁力链接,BT的传输模式,但是内网用户也可使用,类似迅雷;但是这个的区别是会自动推送给其他用户!
5、在传输,存储,运算,代码等方面,都尽量做到符合使用和精简,客户端程序只有1MB左右
6、支持多国语言切换
7、自己摸索
【其他说明】
P2P简介:
目前互联网多为单向数据访问,比如在访问任何网站,比如京东,天猫,微信,爱奇艺等,都有中间服务器承载运行,假如某日出现异常,那么数据可能会有所丢失,并且随着用户数量增多,网站会越来越慢
因此出现了网络数据的分布式结构,也就是P2P网络!众所周知的技术和产品有:BT下载,磁力链接, 电驴,比特币,迅雷,百度网盘的离线下载等等,都有运用相关技术
P2P网络构建原理:
【服务器A】运行主程序;【用户A】运行主程序并手动链接至【服务器A】;【用户B】运行主程序并手动链接至【服务器A】;那么【用户A】和【用户B】将会自动做出交集数据共享!
此时【服务器B】也运行主程序,【用户A或B】对【服务器B】有任何交集,那么【服务器A,B】,【用户A,B】的资源将会一起合并共享,此为最简易的P2P实现原理
数据安全传输协议:
在P2P网络中,比较重要的是数据处理和合并的时候,数据的完整性,以及网络传输的被篡改,数据存储的丢失等,因此在byte或bit的层面,最好是自定义自己的协议,达到简单可控,并可完整的进行校验!
以及在传输中做一些加密是绝对必要的!
数据存储:
不是所有的数据存储都一定要使用最大最强的数据库,这对很多新人来说是个盲点!理论上应该寻找适合自己的存储方式才是正确之道!
个人在简易化或者避免部署的麻烦情况下,一般采用SQLite(当然更简单可直接写入IO);数据存储格式要遵循以“小”,“刚刚好”为原则,在运算和存储传输的过程中有莫大的帮助
以上为简单介绍下执行的原理以及构建时候的思维,设计技术有很多很多,比如客户端UI界面,传输优化和代码,加密实现等等,审核过后会抽空,一一将这些技术以理论和代码的方式讲解下,分享给大家