public function setUp() { $loop = React\EventLoop\Factory::create(); $dnsResolverFactory = new React\Dns\Resolver\Factory(); $dns = $dnsResolverFactory->createCached('8.8.8.8', $loop); $factory = new Socks\Factory($loop, $dns); $this->client = $factory->createClient('127.0.0.1', 9050); }
<?php include_once __DIR__ . '/../vendor/autoload.php'; $loop = React\EventLoop\Factory::create(); $dnsResolverFactory = new React\Dns\Resolver\Factory(); $dns = $dnsResolverFactory->createCached('8.8.8.8', $loop); $factory = new Socks\Factory($loop, $dns); // set next SOCKS server as target $target = $factory->createClient('127.0.0.1', 9050); $target->setAuth('user', 'p@ssw0rd'); // start a new server which forwards all connections to another SOCKS server $socket = new React\Socket\Server($loop); $server = new Socks\Server($socket, $loop, $target->createConnector()); $socket->listen('9051', 'localhost'); echo 'SOCKS server listening on localhost:9051 (which forwards everything to SOCKS server 127.0.0.1:9050)' . PHP_EOL; $loop->run();
<?php use ConnectionManager\SecureConnectionManager; use React\Promise\PromiseInterface; use React\HttpClient\Client as HttpClient; use React\HttpClient\Response; use React\Stream\Stream; include_once __DIR__ . '/../vendor/autoload.php'; $loop = React\EventLoop\Factory::create(); $dnsResolverFactory = new React\Dns\Resolver\Factory(); $dns = $dnsResolverFactory->createCached('8.8.8.8', $loop); $factory = new Socks\Factory($loop, $dns); $client = $factory->createClient('127.0.0.1', 9051); $client->setTimeout(3.0); $client->setResolveLocal(false); //$client->setProtocolVersion(5); // $client->setAuth('test','test'); echo 'Demo SOCKS client connecting to SOCKS server 127.0.0.1:9051' . PHP_EOL; function ex(Exception $exception = null) { if ($exception !== null) { echo 'message: ' . $exception->getMessage() . PHP_EOL; while ($exception = $exception->getPrevious()) { echo 'previous: ' . $exception->getMessage() . PHP_EOL; } } } function assertFail(PromiseInterface $promise, $name = 'end') { return $promise->then(function (Stream $stream) use($name) { echo 'FAIL: connection to ' . $name . ' OK' . PHP_EOL;