资源简介
最近有几个朋友来问我之前写的DHT爬虫相关的东西, 之前的代码写的很乱而且没有注释, 因此重构了一版并补齐了注释, 希望能方便有兴趣的朋友阅读, 直接运行Main.java不需要其他额外工作, 之前没有注释的版本下载地址http://download.csdn.net/detail/dgqjava/9561859, 不建议下那个代码了, 没注释而且结构混乱 代码文件编码是UTF8

代码片段和文件信息
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
/**
* B编码的整数类型
* integers(整数)编码为:i<整数>e 开始标记i,结束标记为e 例如: i1234e 表示为整数1234 i-1234e 表示为整数-1234 整数没有大小限制 i0e 表示为整数0 i-0e 为非法 以0开头的为非法如: i01234e 为非法
* @author dgqjava
*
*/
public class BencodeInteger implements BencodeType {
private final String content;
public BencodeInteger(String content) {
this.content = content;
}
/**
* 从指定位置开始获取一个B编码的整数对象
* @param source 源字符串
* @param index 指定位置
* @return
*/
public static BencodeInteger getInt(String source int index) {
char c = source.charAt(index);
if(c == ‘i‘) {
source = source.substring(index + 1);
return new BencodeInteger(source.substring(0 source.indexOf(“e“)));
}
return null;
}
public int getLength() {
return content.length();
}
public int getTotalLength() {
return getLength() + 2;
}
public byte[] getData() {
try {
return content.getBytes(“iso-8859-1“);
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
}
public byte[] getTotalData() {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
baos.write((byte)‘i‘);
baos.write(getData());
baos.write((byte)‘e‘);
} catch (IOException e) {
throw new RuntimeException(e);
}
return baos.toByteArray();
}
public String toString() {
return content;
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3457 2017-06-29 11:06 Bucket.java
文件 5717 2017-06-29 11:06 DHTHelper.java
文件 20925 2017-06-29 13:31 DHTServer.java
文件 1027 2017-06-29 11:06 LocalDHTNode.java
文件 1958 2017-06-29 13:53 Main.java
文件 9766 2017-06-29 13:57 NIOHelper.java
文件 629 2017-06-29 11:06 NodeId.java
文件 2086 2017-06-29 11:06 NodeInfo.java
文件 5834 2017-06-29 11:06 RoutingList.java
文件 1889 2017-06-29 11:06 BencodeInteger.java
文件 3548 2017-06-29 11:06 BencodeList.java
文件 4059 2017-06-29 11:06 BencodeMap.java
文件 2591 2017-06-29 11:06 BencodeString.java
文件 2027 2017-06-29 11:06 BencodeType.java
----------- --------- ---------- ----- ----
65513 14
相关资源
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
评论
共有 条评论