Example #1
0
 public function testPeer()
 {
     $localhost = '127.0.0.1';
     $localport = '8333';
     $remotehost = '127.0.0.1';
     $remoteport = '9999';
     $loop = new StreamSelectLoop();
     $dnsResolverFactory = new \React\Dns\Resolver\Factory();
     $dns = $dnsResolverFactory->createCached('8.8.8.8', $loop);
     $reactServer = new Server($loop);
     $network = Bitcoin::getDefaultNetwork();
     $client = new NetworkAddress(Buffer::hex('0000000000000001'), $localhost, $localport);
     $server = new NetworkAddress(Buffer::hex('0000000000000001'), $remotehost, $remoteport);
     $msgs = new Factory($network, new Random());
     $serverReceivedConnection = false;
     $serverListener = new Listener($server, $msgs, $reactServer, $loop);
     $serverListener->on('connection', function (Peer $peer) use(&$serverReceivedConnection, &$serverListener) {
         $peer->close();
         $serverReceivedConnection = true;
     });
     $serverListener->listen($server->getPort());
     $connector = new Connector($loop, $dns);
     $clientConnection = new Peer($client, $msgs, $loop);
     $clientConnection->connect($connector, $server)->then(function (Peer $peer) use($serverListener, &$loop) {
         $peer->close();
         $serverListener->close();
     });
     $loop->run();
     $this->assertTrue($serverReceivedConnection);
 }
 /**
  * @dataProvider getVectors
  */
 public function testNetworkAddress($ip, $port, $expected)
 {
     $services = Buffer::hex('0000000000000001');
     $from = new NetworkAddress($services, $ip, $port);
     $this->assertEquals($services, $from->getServices());
     $this->assertEquals($ip, $from->getIp());
     $this->assertEquals($port, $from->getPort());
     $this->assertEquals($expected, $from->getBuffer()->getHex());
 }
 /**
  * @param NetworkAddress $addr
  * @return Buffer
  */
 public function serialize(NetworkAddress $addr)
 {
     return $this->getTemplate()->write([$addr->getServices(), $this->getIpBuffer($addr->getIp()), $addr->getPort()]);
 }
 /**
  * @param int $time
  * @param Buffer $services
  * @param string ip
  * @param int|string $port
  */
 public function __construct($time, Buffer $services, $ip, $port)
 {
     $this->time = $time;
     parent::__construct($services, $ip, $port);
 }
 /**
  * @param int $time
  * @param int $services
  * @param IpInterface $ip
  * @param int|string $port
  */
 public function __construct($time, $services, IpInterface $ip, $port)
 {
     $this->time = $time;
     parent::__construct($services, $ip, $port);
 }