#!/usr/local/bin/php -q
<?php
error_reporting(E_ALL);
ini_set('display_errors',
'On');
// Set time limit to indefinite execution
set_time_limit(0);
// Set the ip and port we will listen on
$IP =
'66.39.167.51';
$PORT =
28000;
$packet_size =
1024;
$timeout =
180;
$servers =
array();
/* Open a server socket to port 1234 on localhost */
if ( $socket = @stream_socket_server
("udp://{$IP}:{$PORT}",
$errno,
$errstr, STREAM_SERVER_BIND
) ) {
echo "Socket setup and listening...\n";
while ( true ) {
/* Get the exact same packet again, but remove it from the buffer this time. */
$raw_data = stream_socket_recvfrom
($socket,
$packet_size,
0,
$remote_ip);
print_r( unpack('C3',
$raw_data) );
list( ,
$game_type,
$request_type,
$dummy) =
unpack('C4',
$raw_data);
switch("X{$request_type}X") {
case 'X3X':
echo "Requesting server list from IP:{$remote_ip}\n";
# foreach( $servers AS $remote_address => $updated_time ) {
# stream_socket_sendto($socket, pack('C1', $remote_address));
# }
# echo "Completed!\n";
break;
case 'X5X':
$utime =
date('U');
echo "Heart Beat from IP:{$remote_ip} @ ".
date('c',
$utime).
"\n";
$servers[$remote_ip] =
$utime;
break;
default:
echo "Game request not recognized\n";
}
}
fclose($socket);
} else {
echo "Socket Server Failure\n";
}
Page was generated in 0.5725 seconds
There are no comments on this page. [Add comment]