从 udp 跟踪器中获取没有播种机和水蛭的刮擦

Getting no seeders and leechers for scrape from udp tracker

我正在尝试为 UDP 跟踪器实施抓取方法,但我一直收到 0 seeders/leechers 作为响应。我仍然得到 2 作为操作,因此没有错误报告。 我在这里硬编码了一个散列,只是为了表明它对我得到的结果没有影响。

    final ByteArrayOutputStream byteStream =new ByteArrayOutputStream();
    final DataOutputStream dataStream =new DataOutputStream(byteStream);
    dataStream.writeInt(connectResponse.get("connectionId0"));
    dataStream.writeInt(connectResponse.get("connectionId1"));
    dataStream.writeInt(2);
    dataStream.write(connectResponse.get("transactionId"));
    bencodeWriter.write(byteOut.toString());
    dataStream.writeChars("1D19CC96C1A4965D184E4B215942DBC0A09FF8F2");
    dataStream.close();
    final byte[] scrapeBytes= byteStream.toByteArray();

我尝试了不同的追踪器,但得到了相同的响应。可能是什么问题?

编辑:添加了所有请求和响应的十六进制转储:

连接请求:

连接响应:

抓取请求:

抓取响应:

在抓取请求中;
transaction_id=0x36 作为单个字节而不是 4 个字节发送=0x00000036
并且 info_hash 作为一个 80 字节的十六进制编码字符串发送,每个字符前面都有一个零字节 0x00 而不是原始的 20 字节字符串。
IE。 0x0031004400310039... 而不是 0x1D19...

Scrape 响应没有同行,因为请求中没有发送带有 info_hashes 的种子。