phudbase/
phudbase/client/
phudbase/client/css/
phudbase/client/images/colorbox/CVS/
phudbase/client/js/
phudbase/server/
phudbase/server/includes/actions/
phudbase/server/includes/classes/
phudbase/server/includes/classes/GameObjects/
<?php
class Socket
{
	private $socket;
	private $address;
	private $port;
	private $blocking;
	
	function __construct($address = "localhost", $port=12345, $blocking=true)
	{
		$this->address = $address;
		$this->port = $port;
		$this->blocking = $blocking;
	}
	
	function open()
	{
		// Create a TCP Stream socket
		$this->socket = socket_create(AF_INET, SOCK_STREAM, 0);
		
		// Set the REUSE option before binding //
		if(!socket_set_option($this->socket,SOL_SOCKET,SO_REUSEADDR,1))
		{
			print(socket_strerror(socket_last_error($this->socket)));
			die();
		}
		
		$time = time();
		$bound = false;
		
		// Bind the socket to an address/port
		while ($time + 10 > time() && !$bound)
		{
			print ("Attempting to bind to port {$this->port}...\n");
			$bound = socket_bind($this->socket, $this->address, $this->port);
			if ($bound)
				break;
			else		
				sleep(1);
		}

		if (!$bound)
		{
			print ("Could not bind...\n");
			die();
		}
	}
	
	function close()
	{
		
	}
	
	function getSocket()
	{
		return $this->socket;
	}
	
	function getAddress()
	{
		return $this->address;
	}
	
	function getPort()
	{
		return $this->port;
	}
	
	function getBlocking()
	{
		return $this->blocking;
	}
}
?>