このbencode https://github.com/dampcake/bencodeを使用してトレントファイルをデコードしています。私は、問題が生じています: エンコードされたトレントファイルは次のようになります。bencodeおよびトレントファイルのエラー
d8:announce21:http://127.0.0.1: ....etc..... piece lengthi65536e6:pieces28300:a�ډ|E���� ���#-14 .....etc........
事は、私が「デコーダ」でこの文字列を入力したときに、私は理由のシンボルのエラーが出るということです。 ここに私の質問です:私はそれらのシンボルの直前にデコードを停止する必要がありますか?または、.torrentファイルを適切にデコードするために文字列全体が必要ですか?
私が読んだことから、私は辞書の終わりにデコードを停止する必要があります。 ..私は最終的に 'E' を発生したが、私はそれを正しく識別するために、方法がわからないとき
おかげで
UPDATE:
ここでは私のコードです:
byte[] to_decode = null;
try {
Path path = Paths.get("/user/.../file.torrent");
to_decode = Files.readAllBytes(path);
} catch (IOException e) {
System.out.println(e.toString());
}
//System.out.println(to_decode.toString());
Bencode bencode = new Bencode();
Map<String, Object> dict = bencode.decode(to_decode, Type.DICTIONARY);
System.out.println(dict);
私はそれを実行するとエラーはありませんが、この種の出力はあります:
f<�>�0�1FT���n" ......etc...... 4'}$�Q�3�� Җk�, private=0}}
括弧を考慮すると、出力は辞書ですが使用可能なフォーマットではないと思うので、動作しないようです。
アドバイスはありますか?
これはJavaとは関係ありません。 – zubergu
それは私がそれについて考えることなくjavaに入ったので、私はJavaでtorrentクライアントを開発しているからですが、はい、私は適切なタグを追加するのを忘れていました... – stevemju
@stevemju今後の質問では、エラーの詳細を提供してください - あなたが使用しているJavaのスタックトレースとJavaコード。これは原因の特定に役立ちます。この質問を編集して詳細を提供することも自由です。 – Piro