0, 'usec' => 300000)); socket_set_option(self::$sock, SOL_SOCKET, SO_SNDTIMEO, array('sec' => 1, 'usec' => 0)); socket_connect(self::$sock, '127.0.0.1', 1333); } public static function submit($data) { self::init(); if (empty($data)) { $data = '{}'; } else { $data = json_encode($data); } $sent = socket_send(self::$sock, $data, strlen($data), 0); if ($sent != strlen($data)) { return 'RPC send error'; } $reply = self::readReply(); if ($reply === false) { return 'RPC receive error'; } return $reply; } /** * Read reply from socket. * * @return mixed read reply as astring, or error message */ private static function readReply() { for ($i = 0; $i < 3; ++$i) { $bytes = socket_recvfrom(self::$sock, $buf, 90000, 0, $bla1, $bla2); if ($bytes !== false) return $buf; } return false; } }