libtorrent资料整理
源码libtorrent源码地址:https://github.com/arvidn/libtorrent/releases
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
libtorrent资料整理的更多相关文章
- iOS 开发学习资料整理(持续更新)
“如果说我看得比别人远些,那是因为我站在巨人们的肩膀上.” ---牛顿 iOS及Mac开源项目和学习资料[超级全面] http://www.kancloud.cn/digest/ios-mac ...
- zz 圣诞丨太阁所有的免费算法视频资料整理
首发于 太阁实验室 关注专栏 写文章 圣诞丨太阁所有的免费算法视频资料整理 Ray Cao· 12 小时前 感谢大家一年以来对太阁实验室的支持,我们特地整理了在过去一年中我们所有的原创算法 ...
- iOS 学习资料整理
iOS学习资料整理 https://github.com/NunchakusHuang/trip-to-iOS 很好的个人博客 http://www.cnblogs.com/ygm900/ 开发笔记 ...
- H.264的一些资料整理
本文转载自 http://blog.csdn.net/ljzcom/article/details/7258978, 如有需要,请移步查看. Technorati 标签: H.264 资料整理 --- ...
- 转:基于IOS上MDM技术相关资料整理及汇总
一.MDM相关知识: MDM (Mobile Device Management ),即移动设备管理.在21世纪的今天,数据是企业宝贵的资产,安全问题更是重中之重,在移动互联网时代,员工个人的设备接入 ...
- 3分钟带你了解PowerShell发展历程——PowerShell各版本资料整理
本文带你了解PowerShell发展历程,顺便整理了一点资料,方便大家查询. Windows PowerShell® 是基于任务的命令行管理程序和脚本语言,专为进行系统管理而设计. 在 .NET Fr ...
- (转载)2016 CCF大数据与计算智能大赛 开源资料整理
本文转载自:http://blog.sina.com.cn/s/blog_5399b8660102wxks.html 2016 CCF 大数据与计算智能大赛已经落下帷幕,11个赛题由众多大神包揽奖项, ...
- Java 学习资料整理
Java 学习资料整理 Java 精品学习视频教程下载汇总 Java视频教程 孙鑫Java无难事 (全12CD) Java视频教程 即学即会java 上海交大 Java初级编程基础 共25讲下载 av ...
- Niagara帮助文档资料整理
1.任何软件额发布都会有说明文档,有的不会附具体实践的操作步骤,存在不懂得问题一般可以通过查看榜文文档解决问题 一些软件的帮助文档是一PDF格式存储在软件安装的目录下面,如Niagar workben ...
随机推荐
- IDEA必备插件系列-Rainbow Brackets(彩虹括号)
Rainbow Brackets ,就是彩虹括号,各种鲜明颜色的括号 这个一个开源的项目: https://github.com/izhangzhihao/intellij-rainbow-brack ...
- 详解GaussDB(for MySQL)服务:复制策略与可用性分析
摘要:本文通过介绍GaussDB(for MySQL)读写路径,分析其可用性. 简介 数据持久性和服务可用性是数据库服务的关键特征. 在实践中,通常认为拥有 3 份数据副本,就足以保证持久性. 但是 ...
- HttpClient 模拟用户操作
首先模拟用户登录: /** * 模拟用户登录 * */ private void login() throws HttpException, IOException { PostMethod logi ...
- 自己动手编写一个Mybatis插件:Mybatis脱敏插件
1. 前言 在日常开发中,身份证号.手机号.卡号.客户号等个人信息都需要进行数据脱敏.否则容易造成个人隐私泄露,客户资料泄露,给不法分子可乘之机.但是数据脱敏不是把敏感信息隐藏起来,而是看起来像真的一 ...
- IntelliJ Idea如何解决Could not autowire. No beans of 'xxxx' type found的错误提示
问题描述 在idea中进行开发时,经常会遇见Could not autowire. No beans of 'xxxx' type found的错误提示,这样的是不影响程序编译和运行的,但是看起来会很 ...
- 前端 go.js 流程图基于vue开发项目案例
一.流程图效果 最近一段时间在研究go.js,它是一款前端开发画流程图的一个插件,也是一个难点,要说为什么是难点,首先,它是依赖画布canvas知识开发.其次,要依赖于内部API开发需求,开发项目需求 ...
- ms14-064漏洞复现
本博客最先发布于我的个人博客,如果方便,烦请移步恰醋的小屋查看,谢谢您! 这是我在实验室学习渗透测试的第五个漏洞复现,一个多小时便完成了.学长给的要求只需完成查看靶机信息.在指定位置创建文件夹两项操作 ...
- java项目的心得,java项目的代码层次的架构划分
java项目使用的架构是ssm(Spring+SpringMVC+MyBatis). 一.后台代码一般分三层,Controller,Service,Dao. 1.Controller层是对前端或者接口 ...
- Java抽象类简述
Java 抽象类 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类. 抽象类除了不 ...
- C++字符串与指针
字符串初始化 在C++中基本数据类型并不包括string,string类型其实是一种类类型,通过STL函数库中的模板类basic_string 实例化得到. int main () { // stri ...