与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. android-----EditText
  2. android的PreferenceActivity
  3. Weekly Metasploit Update: Android WebV
  4. android XML总结
  5. android图片等比例缩放 填充屏幕
  6. android 使用xml制作背景图片(shape的用法
  7. android之AutoCompleteTextView控件用法
  8. Android对话框的高级设置《二》设置对话
  9. android中设置TextView/Button 走马灯效
  10. Android获取网络图片应用示例