* @author  StealThisShow <*****@*****.**>
 * @license https://opensource.org/licenses/BSD-3-Clause BSD 3-Clause
 */
use StealThisShow\StealThisTracker\Persistence\Pdo;
use StealThisShow\StealThisTracker\Seeder\Peer;
use StealThisShow\StealThisTracker\Seeder\Server;
use StealThisShow\StealThisTracker\Logger\File;
// --------------------------------------
// This is how to start a seeding server.
// --------------------------------------
// [!] Run this file in CLI only!
// /usr/bin/php example_seeder.php
// Composer autoloader
require dirname(__FILE__) . '/../vendor/autoload.php';
// Persistence object implementing PersistenceInterface.
// We use Pdo here.
$persistence = new Pdo('sqlite:sqlite_example.db');
// Setting up seeder peer. This will listen to connections and serve files.
$peer = new Peer($persistence);
$peer->setInternalAddress('192.168.2.123')->setExternalAddress('192.168.2.123')->setPort(6881)->setPeerForks(10)->setSeedersStopSeeding(5)->setLogger(new File());
// We set up a seeding server which starts the seeding peer, and makes regular
// announcements to the database adding itself to the peer list for all
// active torrents.
$server = new Server($peer, $persistence);
// Initializing file logger with default file path (/var/log/stealthistracker.log).
$server->setLogger(new File());
// Starting "detached" means that process
// will unrelate from terminal and run as daemon.
// To run in terminal, you can use start().
// Detached running requires php-posix.
$server->startDetached();
Exemplo n.º 2
0
<?php

/**
 * Simple seed server implementation for system test.
 * @package StealThisTracker
 * @author  StealThisShow <*****@*****.**>
 * @license https://opensource.org/licenses/BSD-3-Clause BSD 3-Clause
 * @see     SeedServerTest
 */
// No tolerance for errors - it's a test.
set_error_handler(function ($errno, $errstr, $errfile = null, $errline = null) {
    throw new Exception("Error {$errno}: {$errstr} in {$errfile}:{$errline}");
});
require dirname(__FILE__) . '/../../vendor/autoload.php';
use StealThisShow\StealThisTracker\Persistence\Pdo;
use StealThisShow\StealThisTracker\Seeder\Peer;
use StealThisShow\StealThisTracker\Seeder\Server;
$ip = $argv[1];
$port = $argv[2];
fwrite(STDERR, "Starting seed server at {$ip}:{$port}");
$persistence = new Pdo('sqlite:' . sys_get_temp_dir() . '/sqlite_test.db');
$peer = new Peer($persistence);
$peer->setExternalAddress($ip)->setInternalAddress($ip)->setPort($port)->setPeerForks(5)->setSeedersStopSeeding(5);
$server = new Server($peer, $persistence);
$server->start();