Tag: bittorrent

有BitTorrent协议的问题

我正在尝试为一个学校项目做一个简单的BitTorrent跟踪器。 它现在完全被黑了,但我无法find我要去哪里错了。 我想知道我是否对服务器响应应该有什么误解。 我正在使用node.js和expression。 服务器接收/ GET请求与?info_hash数据没有问题。 而且我可以将这些信息保存到JSON文件中。 服务器也能够使用本码编码来响应客户端。 答案是有一个间隔和一个同龄人列表的字典。 列表中有几个字典,每个字典都包含对等体的IP和端口。 目前,虽然没有一个同行会互相连接。 我将把我的笔记本电脑放在与我的桌面不同的networking上,并且将桌面视为一个潜在的对等点,正确的IP和端口(据我所知),但过了一会儿,它就从对等列表中删除。 我在每个客户端上使用deluge和qBitTorrent。 这里是应用程序的代码: var express = require('express'); var app = express(); var fs = require("fs"); var contents = fs.readFileSync("data.json"); var data = JSON.parse(contents); var findTorrent = function(data, hash) { for(var i = 0; i < data.length; i++) { if(data[i].info_hash === hash) { return data[i]; […]

如何获得对ut_metadata片段请求的响应? (node.js Bit Torrent BEP 0009)

我正在使用Node.js构build一个Bittorrent客户端,并且无法通过PWP元数据扩展( BEP 0009 ) 我从DHT( BEP 0005 )(我宣布)获得同行,然后使用networking套接字通过PWP发送Handshake和Extended Handshake。 buildHandshake = (torrent, ext) => { // torrent contains mainly infoHash const buf = Buffer.alloc(68) buf.writeUInt8(19, 0) buf.write('BitTorrent protocol', 1) if (ext) { const big = new Uint64BE(1048576) big.toBuffer().copy(buf, 20) } else { buf.writeUInt32BE(0, 20) buf.writeUInt32BE(0, 24) } torrent.infoHashBuffer.copy(buf, 28) anon.nodeId().copy(buf, 48) // tool that generates […]

bittorrent跟踪器播种机和leecher在nodejs

我需要在nodejs中设置一个示例bittorrent跟踪器,播种器和leecher。 我写了所有的代码,但它不工作,我不知道为什么。 我使用bittorrent-tracker启动了tracker,使用nt编写torrent文件,使用bittorrent-tracker作为播种器连接到tracker(bt-tracker同时具有客户端和服务器)。 最后,我启动了另一个只有torrent文件并连接到跟踪器的客户端。 我能够看到洪stream中的文件(在下载/ leecher客户端)。 但是文件下载本身不会启动。 正在使用的代码:// Tracker: var Server = require('bittorrent-tracker').Server var port=6881 var server = new Server({ udp: true, // enable udp server? [default=true] http: true // enable http server? [default=true] }) server.on('error', function (err) { // fatal server error! console.log(err.message) }) server.on('warning', function (err) { // client sent bad data. probably […]

Express / torrent-stream:从stream中写入文件,使用url将套接字发送给客户端,但客户端无法find文件

我正在开发一个个人项目,基本上需要一个磁铁链接,开始下载文件,然后在浏览器中呈现video的洪stream。 我使用一个名为torrent-stream的npm模块来完成大部分的工作。 一旦我创build了可读stream并开始写文件,我想用videoURL向客户端发送套接字消息,以便客户端可以呈现html5video元素并开始stream式传输video。 我遇到的问题是,一旦客户端呈现video元素,并试图find源mp4我得到一个404video文件中找不到错误。 任何意见,这将是高度赞赏队友。 🙂 控制器function: uploadVideo: function (req, res) { var torrentStream = require('torrent-stream'); var mkdirp = require('mkdirp'); var rootPath = process.cwd(); var magnetLink = req.param('magnet_link'); var fs = require('fs'); var engine = torrentStream(magnetLink); engine.on('ready', function() { engine.files.forEach(function(file) { var fileName = file.name; var filePath = file.path; console.log(fileName + ' – ' + […]