cvs: pear /Net_GameServerQuery GameServerQuery.php /Net_GameServerQuery/GameServerQuery Communicate.php /Net_GameServerQuery/docs/examples
example1.php

From: Date: Sun, 04 Jul 2004 04:31:22 +0000
Subject: cvs: pear /Net_GameServerQuery GameServerQuery.php /Net_GameServerQuery/GameServerQuery Communicate.php /Net_GameServerQuery/docs/examples
example1.php
Groups: php.pear.cvs 
Request: Send a blank email to pear-cvs+get-21481@lists.php.net to get a copy of this message
aidan Sun Jul 4 00:31:22 2004 EDT Modified files: /pear/Net_GameServerQuery GameServerQuery.php /pear/Net_GameServerQuery/GameServerQuery Communicate.php /pear/Net_GameServerQuery/docs/examples example1.php Log: single packets per connection passes more information to process class http://cvs.php.net/diff.php/pear/Net_GameServerQuery/GameServerQuery.php?r1=1.11&r2=1.12&ty=u Index: pear/Net_GameServerQuery/GameServerQuery.php diff -u pear/Net_GameServerQuery/GameServerQuery.php:1.11 pear/Net_GameServerQuery/GameServerQuery.php:1.12 --- pear/Net_GameServerQuery/GameServerQuery.php:1.11 Sat Jul 3 11:35:44 2004 +++ pear/Net_GameServerQuery/GameServerQuery.php Sun Jul 4 00:31:21 2004 @@ -16,7 +16,7 @@ // | Tom Buskens <ortega@php.net> | // +----------------------------------------------------------------------+ // -// $Id: GameServerQuery.php,v 1.11 2004/07/03 15:35:44 aidan Exp $ +// $Id: GameServerQuery.php,v 1.12 2004/07/04 04:31:21 aidan Exp $ require_once 'GameServerQuery\Config.php'; @@ -30,7 +30,9 @@ * @category Net * @package Net_GameServerQuery * @author Aidan Lister <aidan@php.net> - * @version $Revision: 1.11 $ + * @version $Revision: 1.12 $ + * @todo Validate the game added + * @todo Validate each part of the query type */ class Net_GameServerQuery { @@ -96,11 +98,16 @@ // Incriment the counter ++$this->_counter; + /* // Build the list of packets to be sent $querylist = explode('|', $query); foreach ($querylist as $query) { $querypackets[$query] = $this->_config->packet($game, $query); } + */ + + // Only doing single packets now + $packet = $this->_config->packet($game, $query); // Default port if (is_null($port)) { @@ -113,7 +120,8 @@ 'game' => $game, 'ip' => $ip, 'port' => $port, - 'query' => $querypackets, + 'query' => $query, + 'packet' => $packet, ); // Return the counter for identifying the server later @@ -127,7 +135,7 @@ * @param int $timeout The timeout in milliseconds * @return array An array of server information */ - public function execute($timeout = 60) + public function execute($timeout = 100) { // Timeout in millseconds $timeout = $timeout * 1000; http://cvs.php.net/diff.php/pear/Net_GameServerQuery/GameServerQuery/Communicate.php?r1=1.2&r2=1.3&ty=u Index: pear/Net_GameServerQuery/GameServerQuery/Communicate.php diff -u pear/Net_GameServerQuery/GameServerQuery/Communicate.php:1.2 pear/Net_GameServerQuery/GameServerQuery/Communicate.php:1.3 --- pear/Net_GameServerQuery/GameServerQuery/Communicate.php:1.2 Sat Jul 3 11:36:23 2004 +++ pear/Net_GameServerQuery/GameServerQuery/Communicate.php Sun Jul 4 00:31:21 2004 @@ -16,7 +16,7 @@ // | Tom Buskens <ortega@php.net> | // +----------------------------------------------------------------------+ // -// $Id: Communicate.php,v 1.2 2004/07/03 15:36:23 aidan Exp $ +// $Id: Communicate.php,v 1.3 2004/07/04 04:31:21 aidan Exp $ /** @@ -25,7 +25,7 @@ * @category Net * @package Net_GameServerQuery_Communicate * @author Aidan Lister <aidan@php.net> - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ */ class Net_GameServerQuery_Communicate { @@ -75,12 +75,17 @@ stream_set_blocking($socket, false); $sockets[$key] = $socket; - $sockets_list[(int)$socket] = $key; + $sockets_list[(int)$socket] = array('key' => $key, 'query' => $server['query']); + /* // Need some error checking here foreach ($server['query'] as $packet) { $this->write($socket, $packet); } + */ + + // Single packets now + $this->write($socket, $server['packet']); } } @@ -135,7 +140,10 @@ // For each socket that had activity, read a single packet foreach ($r as $socket) { $response = stream_socket_recvfrom($socket, 2048); - $result[$sockets_list[$socket]][] = $response; + $sockid = (int) $socket; + $key = $sockets_list[$sockid]['key']; + $query = $sockets_list[$sockid]['query']; + $result[$key][$query] = $response; } // Reset the listening array http://cvs.php.net/diff.php/pear/Net_GameServerQuery/docs/examples/example1.php?r1=1.1&r2=1.2&ty=u Index: pear/Net_GameServerQuery/docs/examples/example1.php diff -u pear/Net_GameServerQuery/docs/examples/example1.php:1.1 pear/Net_GameServerQuery/docs/examples/example1.php:1.2 --- pear/Net_GameServerQuery/docs/examples/example1.php:1.1 Fri Jul 2 05:07:18 2004 +++ pear/Net_GameServerQuery/docs/examples/example1.php Sun Jul 4 00:31:21 2004 @@ -12,23 +12,18 @@ // add servers $serv1 = $gsq->addServer('halflife', '202.173.159.7', null, 'players'); $serv2 = $gsq->addServer('halflife', '202.173.159.8', null, 'status'); -$serv3 = $gsq->addServer('halflife', '203.26.94.152', null, 'rules|status|players'); +$serv3 = $gsq->addServer('halflife', '203.26.94.152', null, 'rules'); // fire up -$result = $gsq->execute(); +$result = $gsq->execute(45); // results $bm->stop(); -ksort($result); -foreach ($result as $server => $reply) { - echo "Server $server\n"; - $i = 0; - foreach ($reply as $packet) { - ++$i; - echo "Packet #$i (" . strlen($packet) . " bytes)\n"; - } - echo "\n"; -} +echo $result[$serv1]['players']; +echo "\n\n"; +echo $result[$serv2]['status']; +echo "\n\n"; +echo $result[$serv3]['rules']; // benchmark echo 'Took ... ' . $bm->timems() . 'ms';

« previous php.pear.cvs (#21481) next »