Example #1
0
##############################
$problems = json_decode(file_get_contents(dirname(__FILE__) . "/problems/problems.json"), true);
$sock = socket_create(AF_INET, SOCK_STREAM, 0);
socket_bind($sock, 0, $port) or die('Could not bind to address');
socket_listen($sock);
while (true) {
    $client = socket_accept($sock);
    $input = socket_read($client, 1024000);
    extract((array) json_decode($input));
    $file_input_title = $problems[$problem_number]["file_title"];
    $problem_timeout = $problems[$problem_number]["info"]["timeout"];
    $file_input_data = $problems[$problem_number]["info"]["input"] === "null" ? "" : file_get_contents(dirname(__FILE__) . '/problems/' . strtolower($file_input_title) . '/' . $file_input_title . '.in', FILE_USE_INCLUDE_PATH);
    $file_output_data = file_get_contents(dirname(__FILE__) . '/problems/' . strtolower($file_input_title) . '/' . $file_input_title . '.out', FILE_USE_INCLUDE_PATH);
    compileProgram("/tmp/{$processname}/{$class}.java", "/tmp/{$processname}/", "/tmp/{$processname}/{$class}.class", $class, $inputs, $args, $processname, $data, $problem_number, $file_input_title, $file_input_data, $file_output_data, $problem_timeout, $team);
    $elephant = new ElephantIOClient('http://localhost:8008', 'socket.io', 1, false, true, true);
    $elephant->init();
    $elephant->send(ElephantIOClient::TYPE_EVENT, null, null, json_encode(array('name' => 'get_subs', 'args' => $team)));
    $elephant->send(ElephantIOClient::TYPE_EVENT, null, null, json_encode(array('name' => 'recalculate', 'args' => $team)));
    $elephant->close();
    socket_close($client);
}
// Close the master sockets
socket_close($sock);
function proc_timeout($start, $problem_timeout)
{
    //check if program has timed out
    return microtime(true) - $start > $problem_timeout ? true : false;
}
function proc_exec($cmd, $inputs, $type, $problem_timeout)
{
    $output = "";
Example #2
0
 protected function do_create_socket()
 {
     $this->socket = new \ElephantIO\Client('http://localhost:8000', 'socket.io', 1, false, true, true);
     $this->socket->init();
 }