cvs: pear /Net_GameServerQuery GameServerQuery.php /Net_GameServerQuery/GameServerQuery Communicate.php /Net_GameServerQuery/docs/examples
example1.php
| From: | Aidan Lister | 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';