gpt4 book ai didi

java - 从 Bittorrent 的 DHT Bootstrap 获取困惑回复

转载 作者:行者123 更新时间:2023-12-02 04:49:20 25 4
gpt4 key购买 nike

我正在尝试在 Bittorrent 主线中实现 DHT 节点。到目前为止,我在引导节点上建立了进出连接,根据一些编码示例,查询似乎很好,但我返回的部分结果都是乱码的(包含实际数据的部分):

d2:ip6:µ§ û©Å1:rd2:id20:ëÿ6isQÿJì)ͺ«òûãF|Âge1:t2:aa1:y1:re

这是我到目前为止的代码:

private static String serverName = "router.utorrent.com";
private static int port = 6881;
private static String packet = "d1:ad2:id20:abcdefghij0123456789e1:q4:ping1:t2:aa1:y1:qe";
public static void main(String[] args) {

int port = Main.port;
InetAddress address = InetAddress.getByName(Main.serverName);
DatagramSocket socket = new DatagramSocket();

byte[] buf = Main.packet.getBytes();
DatagramPacket packet = new DatagramPacket(buf, buf.length, address, port);
socket.send(packet);
byte[] recBuf = new byte[2048];
DatagramPacket recPacket = new DatagramPacket(recBuf, recBuf.length);

socket.receive(recPacket);

System.out.println(new String(extract(recPacket)));
}

private static byte[] extract(DatagramPacket packet) {
byte[] data = packet.getData();
int offset = packet.getOffset();
int length = packet.getLength();

byte[] copy = new byte[length];
System.arraycopy(data, offset, copy, 0, copy.length);

return copy;
}

我不确定我是否有图表集问题,或者是否有一些我在任何地方都找不到指定的编码。

最佳答案

我认为你的回答是正确的。听起来您希望 DHT 协议(protocol)仅使用 ascii 字符,但事实并非如此。 160位节点ID以20字节传输,IP和端口以6字节传输。

参见protocol specification .

关于java - 从 Bittorrent 的 DHT Bootstrap 获取困惑回复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29379076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com