Tag: bittorrent

Bittorrent扩展协议

我想在java中编写自己的bittorrent客户端,这是一个make work项目来刷新我的java技能。 我一直处于开发的某个阶段,尽管有一些论坛用于bittorrent开发,但它们看起来并不活跃。 到目前为止,我可以做到以下几点: 从Tracker站点获取同行列表 连接到同行 发送’Handshake’消息 收到’Handshake’消息 发送“感兴趣”消息。 收到“Unchoke”消息。 我遇到的问题是,如果我在发送“感兴趣”消息之前尝试向对等方发送扩展数据( http://www.bittorrent.org/beps/bep_0010.html )。 协议规定您必须在收到握手后立即发送扩展数据。 如果我将扩展数据发送到对等体,则对等体立即关闭连接,即在Wireshark中我看到FIN,ACK。 我使用Wireshark和uTorrent来查看正在发送的扩展数据,我试图复制这些数据,但无济于事。 我已经尝试了扩展数据参数的所有不同组合,但无论我做什么,我都无法超越这一点。 以下是从Wireshark复制的扩展数据消息的示例。 d1:ei0e4:ipv44:czH12:complete_agoi-1e1:md11:upload_onlyi3e11:lt_donthavei7e12:ut_holepunchi4e11:ut_metadatai2e6:ut_pexi1e10:ut_commenti6ee1:pi43276e4:reqqi255e1:v13:Torrent 3.52:ypi48680e6:yourip4:jFe 这是来自我的客户端的扩展数据不起作用。 顺便说一下,我已经检查过以确保ip变量是正确的(它们以4个字节的forms发送)。 d1:ei0e4:ipv44:czH12:complete_agoi-1e1:md11:upload_onlyi3e11:lt_donthavei7e12:ut_holepunchi4e11:ut_metadatai2e6:ut_pexi1e10:ut_commenti6ee1:pi51361e4:reqqi255e1:v15:MyTorrent v0.152:ypi40898e6:yourip4:RO e 此外,一旦我收到“Unchoke”消息,我就能成功检索到碎片。 任何信息,将不胜感激。

用Java创建torrent客户端?

可能重复: Java BitTorrent库 我想了解更多关于在java中创建torrent客户端的信息。 我在这里问这个问题,因为我不知道我开始为一个torrent客户端编程的方向。 我想我需要一个 sockets 了解网络种子使用 有人能指出我正确的方向。

如何在Java中生成.torrent?

我想用Java生成一个.torrent文件,但是我不想要一个可以做任何事情的大型API,比如抓取跟踪器,播种等等。这只适用于生成元数据的客户端。 有哪些轻量级解决方案 我只生成一个.zip文件的.torrent。 谢谢!