Faça o tempo limite de socket_connect do PHP

Eu tenho um pequeno aplicativo que criei para analisar a conexão de rede. Ele é executado a partir de um navegador e se conecta a um servidor PHP / Apache local. Em seguida, ele pede ao PHP para enviar um pacote de ping através de um soquete bruto. O problema é que, se o host que estou tentando fazer ping não estiver ativo ou não responder a pings, nunca obteremos uma resposta do servidor.

Eu saio da solicitação de soquete até que o apache seja reiniciado. Eu tenho recebido resultados mistos do meu aplicativo ultimamente e estou culpando o apache usando muitos soquetes. Atualmente eu defini o tempo limite da chamada AJAX e fiquei feliz com isso. Mas eu realmente preciso fazer o PHP fazer o timeouting para que eu não tenha 500.000 soquetes abertos para um host inacessível.

Algum código de amostra:

$sockconn = @socket_connect($socket, $target, null);
if(!$sockconn)
{
    $raw['error'] = socket_strerror(socket_last_error());
    $raw['status'] = false;
    return $raw;
}

Esta é a função que não irá expirar. Eu preciso fazer isso para o tempo limite. Também o tempo de execução do script PHP NÃO afeta os sockets.

Eu sou sem noção.

questionAnswers(2)

yourAnswerToTheQuestion