关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭7年前。Improvethisquestion我正在考虑用ruby编写定制的torrent客户端。我找到了以下库(正如马特在下面指出的那样,它们已经很老了)。但是,我想听听我可能错过的任何图书馆,我也很想听听社区对以下图书馆的看法。至于利弊...RubyTorrentlibtorrent-ruby请注意,我希望修改库的一些内部工作方式以满足我的需要。因此,纯ruby库将是理想的。注意:我在stackoverflow中搜索了这个问题(或
成功发送和接收来自多个点的握手后,BitTorrent消息链的下一步是位域消息。bitfield消息如下所示,其中顶行解释了协议(protocol)段的字节大小:我遇到的问题是,几乎所有对等方似乎都在发送与上述表示不同的位域消息!消息往往看起来像这样:size:332,[0,0,0,112,5,127,-1,-1,-1,-1,-5,-1,-1,-1,-1,-1,-17...]第一个问题是我收到的大多数消息都有长度字节:[0,0,0,112]即使在这种情况下接收到的消息总共包含332个字节,而在其他一些情况下,消息可能只有80个字节左右。第二个问题是这些位通常重复-1或其他一些奇怪的负值
我有几个关于BittorrentPeerWire协议(protocol)的问题。我正在尝试使用thisspec在Java中实现它.在PeerWireProtocol部分,它表示所有整数都是四字节大端值。AFAIKjava使用大端。这是否意味着说我是否要发送阻塞消息窒息:我是否只写入sokcet1后跟0?关于我的第二个问题。当请求一件作品时,我是否认为多个文件是一个大的连续文件?还是考虑单个文件?因为片段长度不会与文件对齐,所以一个索引可以同时包含一个文件的结尾和另一个文件的开头?至于我的最后一个问题,当我打开与对等方的连接并发送我的握手时,我是继续请求片段还是请求然后等待一段时间,
我正在尝试使用Bittorrents规定但是我没有如何格式化我正在生成的计划字符串peerid。我计划中的两者都有:NewSessionIDgenerated:-MC0001-948902816289SessionIDURLEncoded:%-M%C0%00%1-%94%89%02%81%62%89我会寄吗?我从服务器中获得无效的请求...我已经测试过,我的info_hash有效。以下示例请求。http://tracker.tfile.me/announce?info_hash=%B5%E1%3F%36%35%09%62%85%A2%F4%B9%C8%9A%75%E9%F1%CC%BD%C3%
我正在使用WireShark分析BitTorrent,根据规范和Wiki,BitTorrent应该使用TCP进行交换,但我正在使用UDP进行整个交换。我阅读了应该使用UDP的DHT,但据我了解,它仅使用UDP将您的IP信息存储在哈希表中。交换应该仍然在TCP中,对吗?为什么我在UDP数据包交换而不是TCP中获取整个下载? 最佳答案 BitTorrent协议(protocol)已扩展为使用UDP与uTP-uTorrenttransportprotocol(BEP29)扩展名。 关于tcp-
我正在尝试向对等点发送BitTorrent握手,但它不起作用。有人能弄清楚我做错了什么吗?len应该返回一些东西,但目前为零。require'bencode'require'digest/sha1'file=File.open('./python.torrent').readinfo_hash=Digest::SHA1.hexdigest(a['info'].bencode)#Here'swhatparsed_response['peers']returns:#[{"ip"=>"8.19.35.234","peerid"=>"-lt0C20-\x90\xE0\xE6\x0E\xD0\x
我在bittorrent协议(protocol)上遇到了一些问题。我正在向一些同行发送握手消息。我让我的客户基本上连接到列表中的每个对等点,然后发送“握手”。代码如下-peer_id='autobahn012345678bit'peer_id=peer_id.encode('utf-8')pstr='BitTorrentprotocol'pstr=pstr.encode('utf-8')pstrlen=chr(19)pstrlen=pstrlen.encode('utf-8')reserved=chr(0)*8reserved=reserved.encode('utf-8')我正在发送
我正在为内部集群实现我自己的dht。由于它将用于像bittorrent这样的文件共享程序,“MainlineDHT”是我首先看到的。之后我发现了“纠缠”(python,使用扭曲矩阵的dht),congress(python,使用pyev+libev的dht),当然还有原始的“kademlia”。他们在组织k-buckets方面有不同的方法:1)congress,kademlia在2*i*(i+1)范围内使用固定的160个桶,对于02)主线DHT和entangled使用动态桶。一开始他们只有1个桶覆盖整个空间。当它充满8个存活节点后,bucket将被拆分为2个新节点。但前提是我们自己的i
我有一个分布式SQL数据库的想法,它使用bittorrent协议(protocol)来提取和写入其数据。为了论证,假设这是一个消息传递应用程序,成千上万的用户运行一个程序,其中包含一个消息传递窗口和一个供他们编写消息的输入框。写入的每条消息都会插入到它们自己的sqlite数据库中。如何实现下载一个主要包含用于创建数据库的架构/DDL的.torrent文件,并在本地计算机上创建它。任何时候完成“写入”操作(比如用户想要发送消息),INSERT行(有点像delta)会做两件事:写入他们自己的内部数据库从该行创建一个.torrent文件,命名为messaging-[my-ip]-[UTC_t
我有一个分布式SQL数据库的想法,它使用bittorrent协议(protocol)来提取和写入其数据。为了论证,假设这是一个消息传递应用程序,成千上万的用户运行一个程序,其中包含一个消息传递窗口和一个供他们编写消息的输入框。写入的每条消息都会插入到它们自己的sqlite数据库中。如何实现下载一个主要包含用于创建数据库的架构/DDL的.torrent文件,并在本地计算机上创建它。任何时候完成“写入”操作(比如用户想要发送消息),INSERT行(有点像delta)会做两件事:写入他们自己的内部数据库从该行创建一个.torrent文件,命名为messaging-[my-ip]-[UTC_t