DHT爬虫的设计思路

作者: 一开始_c8b1 | 来源:发表于2018-05-28 14:49 被阅读40次

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

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

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

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

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

    未完待续

    相关文章

      网友评论

        本文标题:DHT爬虫的设计思路

        本文链接:https://www.haomeiwen.com/subject/cquyjftx.html