A little bit of everything answered here. : tribes1ms20070802

HomePage :: Categories :: PageIndex :: RecentChanges :: RecentlyCommented :: Login/Register
Oldest known version of this page was edited on 2007-08-02 23:32:26 by JimLucas []
Page view:
#!/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";
}
Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by Wikka Wakka Wiki 1.1.6.2
Page was generated in 0.5710 seconds