DHT爬虫相关我爱编程

DHT爬虫的设计思路

2018-05-28  本文已影响40人  一开始_c8b1

 DHT的数据编码方式和数据类型

    1, 有四种数据类型, string  number list  map.  位置我在项目中自己定义了对应的java的四种类型, 他们的关系如下图所示.

看似有四种,其实只有两种数据类型, BeString和BeLong.  BeString由于标准文档中没有指定string的编码格式不确定是utf8还是其它, 所以这个类中保存数据的是byte[]类型的.   Belong类型也是很奇怪. 例如: 数字32. 是先转换成字符串, 然后在转成字符3 和2 . 在将字符强制转换成字节.  最后字节数组中保存这两个字节.  不清楚这种方式是否正确. 

考虑到欧美人的字节编码思维, 在他们的意识中估计还是以为一个字节就是一个字符吧,  根本就就没有考虑到多字节的编码. 所以在dht的bep5的官方文档中对于字节编码没有说明.  因为utf8 也兼容ASCII码,  所以项目中尽量使用utf8编码. 具体那种情况还要后面项目起来后调试了解了. 

2 , 编码方式使用的是奇葩的bencoding编码, 详情请自行百度了解

未完待续

上一篇 下一篇

猜你喜欢

热点阅读