源码libtorrent源码地址:https://github.com/arvidn/libtorrent/releases

libtorrent Java库地址:https://github.com/frostwire/frostwire-jlibtorrent/
libtorrent 官方Android实现:https://github.com/mianharisali/TorrentStream-Android
libtorrent 官方node.js实现:https://github.com/fanatid/libtorrent-rasterbar
libtorrent 官方go实现:https://github.com/steeve/libtorrent-go
libtorrent 官网:http://www.libtorrent.org/
boost源码:https://sourceforge.net/projects/boost/files/boost/1.65.1/
xbt-tracker官网:http://xbtt.sourceforge.net/tracker/
xbt-tracker使用:

svn co http://xbt.googlecode.com/svn/trunk/xbt/misc xbt/misc
svn co http://xbt.googlecode.com/svn/trunk/xbt/Tracker xbt/Tracker
cd xbt/Tracker
./make.sh
cp xbt_tracker.conf.default xbt_tracker.conf

原理协议
维基专题:https://wiki.theory.org/index.php/BitTorrentSpecification#Extension_protocol
bt协议官网:http://bittorrent.org/beps/bep_0000.html
bt官网译文:http://blog.csdn.net/xxxxxx91116/article/details/7970815
torrent文件解析:http://www.cnblogs.com/hnrainll/archive/2011/07/21/2112809.html
 
其他p2p协议
JXTA:https://www.ibm.com/developerworks/cn/java/j-jxta2/ 
JXTA:http://www.cnblogs.com/cuizhf/p/3567752.html
openpeer:https://openpeer.org/open-peer-sdk-for-android/
 
编译相关:
libtorrent NDK编译:http://blog.csdn.net/echoaiya/article/details/44196771
(现使用的RutrackerDownloader编译的apk的引用网址也源自与此)
Boost-for-android:https://github.com/moritz-wundke/Boost-for-Android 
 
vbytes(目前p2p产品主要参考的产品)
vbyteAPI地址:http://www.vbyte.cn/vlogin.html 
测试地址: http://devcenter.vbyte.cn 
测试帐号: 用户名: test@vbyte.cn,密码: Vb360
 
libtorrent自带测试程序使用样例
制作种子:(XXX://120.77.237.39:2710/announce是trakcer地址,可以用-t指定多个)

./make_torrent movie2/fntg1024bd.mkv -t http://120.77.237.39:2710/announce
-t udp://120.77.237.39:2710/announce -o movie2/fntg1024bd.torrent -C seecool -c "testvideo"

tracker状态监控:

http://120.77.237.39:2710/status
client_test直接使用infohash:

./client_test 4624f1877cc6a06e3d8e688e5354876501482acb@http://120.77.237.39:2710/status -s downloaddir/ -f debug.log

公司的网络环境:

[root@master stund]# ./client stun.xten.com
STUN client version 0.97
running test number
Primary: Dependent Mapping, preserves ports, no hairpin
Return value is 0x000019

演示环境

[root@master stund]# ./client stun.xten.com
STUN client version 0.97
running test number
Primary: InDependent Mapping, random ports, will hairpin
Return value is 0x000019

172网段网络检测结果:

http://cc.rtmfp.net/

UPnP专题:
路由器需要配置Upnp说明(转发规则->Upnp)

Upnp-Notify抓包

NOTIFY * HTTP/1.1
HOST:239.255.255.250:
Cache-Control:max-age=
Location:http://192.168.2.1:35259/rootDesc.xml
Server: ASUSTeK UPnP/1.0 MiniUPnPd/1.4
NT:urn:schemas-upnp-org:device:InternetGatewayDevice:
USN:uuid:a5631a65-f098-440e-8d12-d636413e2300::urn:schemas-upnp-org:device:InternetGatewayDevice:
NTS:ssdp:alive

UPnP响应抓包:

HTTP/1.1  OK
CACHE-CONTROL: max-age=
ST: upnp:rootdevice
USN: uuid:a5631a65-f098-440e-8d12-d636413e2300::upnp:rootdevice
EXT:
SERVER: ASUSTeK UPnP/1.0 MiniUPnPd/1.4
LOCATION: http://192.168.2.1:35259/rootDesc.xml

UPnP设备搜索抓包:

M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:
ST:upnp:rootdevice
MAN:"ssdp:discover"
MX:

client_test与tracker交互抓包

GET /announce?info_hash=%c6%d9%8a%!%caVO%3e%a5%f7%d32%%5d%e9HV&peer_id=-LT1150-s!q(NgykSRLV&port=&uploaded=&downloaded=&left=&corrupt=&key=AEFD4871&event=stopped&numwant=&compact=&no_peer_id=&supportcrypto=&redundant= HTTP/1.1
Host: 120.77.237.35:
User-Agent: client_test/1.1.5.0
Accept-Encoding: gzip
Connection: close HTTP/1.0 OK d8:completei0e10:incompletei1e8:intervali1800e12:min intervali1800e5:peers0:e

网络穿透权威资料

P2P网络中的NAT穿透机制研究.nh
通过HTTP的方式提供种子
libtorrent内已经支持,格式可参考维基百科:https://wiki.vuze.com/w/HTTP_Seeding
 
WebSeed模式分为两种:
BEP17服务端适配:http://bittorrent.org/beps/bep_0017.html
BEP19客户端适配:http://bittorrent.org/beps/bep_0019.html

获取自己外网IP接口:
http://ip.taobao.com/service/getIpInfo.php?ip=myip​ 

最新文章

  1. jsp九大内置对象
  2. FusionCharts饼图的图例属性
  3. cut命令
  4. 轻量级MVC框架:Nancy学习
  5. 【C#】1.3 WPF应用程序学习要点
  6. 页断裂(partial write)与doublewrite技术
  7. 保存会话数据——session学习
  8. AOP 之 6.1 AOP基础(拾陆)
  9. Flume NG中的Netcat Source
  10. nodejs注册为windows服务
  11. Android定义的路径全局变量
  12. jQuery中的index方法介绍
  13. Redis各种数据结构性能数据对比和性能优化实践
  14. Map的嵌套
  15. golang ffmpeg 做网络直播
  16. odoo配置文件内容详解
  17. mysql 游标嵌套
  18. window server2012服务器上如何安装nginx并启动
  19. docker入门实战
  20. Charles基础

热门文章

  1. .Net 异常最佳做法
  2. JS学习第五天
  3. 2020-07-07:mysql如何实现跨库join查询?
  4. MarkDown总结(适合初学者快速入门)
  5. C#LeetCode刷题之#852-山脉数组的峰顶索引(Peak Index in a Mountain Array)
  6. JavaScript apply使用
  7. python设计模式之享元模式
  8. 大整数加法C++(计蒜客)
  9. eclipse及idea使用问题记录(为了方便github同步,重新用Markdown写了一篇)
  10. df卡死和fork:cannot allocate memory报错