sock = socket_create(AF_INET, SOCK_STREAM, 0); socket_bind($this->sock, $address, $port) or die('Could not bind to address/port'); $this->log("Listening on port ". $port); socket_listen($this->sock); while(true) { $read[0] = $this->sock; for($i = 0; $i < $this->maxclients; $i++) { if(@$this->client[$i]['sock'] != null) { $read[$i + 1] = $client[$i]['sock']; } } $ready = socket_select($read, $write = NULL, $except = NULL, $tv_sec = NULL); if(in_array($this->sock, $read)) { for($i = 0; $i < $this->maxclients; $i++) { if($client[$i]['sock'] == null) { $client[$i]['sock'] = socket_accept($this->sock); break; } elseif($i == $this->maxclients - 1) { $this->log("Too many clients connected"); } } if (--$ready <= 0) { continue; } } } socket_close($this->sock); } function log($message) { echo $message . "\n"; } } $server = new Server("127.0.0.1", 43594); ?>