与Tracker交互

目的

与Tracker进行交互主要有两个目的:一是将自己的下载进程通知给Tracker以便Tracker进行一些相关的统计;二是获取当前下载同一个共享文件的peer的IP地址和端口号。


协议

BT客户端与tracker交互依靠的是HTTP/HTTPS协议。

过程

在BT客户端解析完torrent文件信息后,建立一个HttpURLConnection连接,而这个URL地址就是torrent文件里的announce的tracker服务器地址。客户端使用HTTP协议与Tracker进行通信。Tracker通过HTTP GET方法获取请求,请求的构成为Tracker的URL后面跟一个?以及参数和值对,如 http://tk.greedland.net/ announce?paraml=value1&param2=value2。

GET请求参数



info_bash: .torrent文件中的info部分的Shal校验码,共20byte。tracker服务器可以通过它在发布列表中找到对应的记录。 peer_id: BT客户端的唯一性标志,在客户机启动时产生,共20bit。在BTV1.0中没有规定产生peer_id的算法,只能保证唯一性即可。 port: 提供上传的端口号,亦即常说的监控端口。 key: 可选。一个扩展的唯一性标志,即使改变了IP地址,也可以使用该字段标志该BT客户机。 uploaded/downloaded: 上传/下载的字节数(从客户机向tracker服务器发送“started”开始计算),服务器可以用它做流量分析。 left: 还需要下载的字节数。 compact: 压缩标志。假如值为1表示接受压缩格式的对等方列表,即用6byte表示一个对等方(前4byte表示IP地址,后2byte表示端口号)值为0表示不接受。 event: 表面客户机的状态,只是started、completed、stopped等3种中的一种。

更多相关文章

  1. Linux系统下用C语言获取MAC地址
  2. Red Hat Linux下如何修改网卡MAC地址
  3. 一些下载交叉编译环境的地址
  4. 如何使用SQL语句查到当前SQL SERVER 2000服务器的IP地址
  5. 如何通过HttpURLConnection得到http 302的跳转地址
  6. Java Android套接字连接。错误的IP地址导致应用程序停止响应
  7. Android利用IP地址定位城市(全世界可用)
  8. Android获取WIFI状态下的IP地址以及MAC地址
  9. Android SDK更新以及ADT更新出现问题的解决办法(附google服务器

随机推荐

  1. adb下载
  2. Android可拖动的ImageView
  3. Android实现主动连接蓝牙耳机
  4. Android改变Spinner弹出框的位置
  5. android的service
  6. Android自动化测试之MonkeyRunner之Monke
  7. [Android][HTC]HTC Android Reboot Comma
  8. 在 Android Emulator 中开发 LKM 程序
  9. Android uses-permission权限
  10. android实现进度条ProgressDialog