资源简介
最近有几个朋友来问我之前写的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工程师面试突击第1季可能是史上最
- java DHT爬虫 重构并加了完整的注释 修
- java DHT爬虫
- JavaEE项目案例源码
- Java开发的游戏 贪吃蛇 完整源代码
- JAVA简版图书馆管理程序
- JAVA VOX转WAR转换器
- Java安全通信
- 小型图书管理系统jsp+javabean+servlet+s
- 动物识别系统java版、C版
- Utils.java
- java时钟_表盘数字
- Java开发学生管理系统-project
- jconsole.1.8.0jar
- Delphi10.3 中通过JNI调用 Java 函数
- msmqjava.dll 64位版本 测试可用
- Java游戏\\猫和老鼠.jar
- Java游戏\\埃及祖玛.jar
- JavaFx WeChat聊天软件服务端
- Java在线编辑编译运行
- 助学贷款管理系统纯JAVA语言编写,数
- 泡泡龙游戏(JAVA写的)
- MODEL 2 的登录功能实现 servlet+jsp+java
- 达内java培训内部资料pdf 百度网盘(有
- Java实现的打字游戏
- Java实现的五子棋
- 遗传算法 tsp java
- Java+Mysql课程设计 学生成绩管理系统连
- JAVA编程题全集100题及答案——直接打
- CMPP2.0JAVA调用
评论
共有 条评论