Lo que podrias hacer es tratar de abrir un socket primero, y si no esperas un momento con while, por ejemplo:
Código PHP:
$fp = fsockopen($host, $port, $errno, $errstr);
$max_tries = 20;
$tries = 0;
while( !$fp && ( $tries <= 20 ) ) {
$fp = fsockopen($host, $port, $errno, $errstr);
sleep(3);
$tries++;
}
if( !$fp ) {
echo "errno: $errno \n";
echo "errstr: $errstr\n";
return $result;
}
Con ese codigo intentara 20 veces conectar, creo es lo mejor a dejarlo de forma infinita o podrias ciclar tu server.
Saludos.
PD no te olvides de usar set_time_limit() o si no tu script terminara antes de intentar las 20 veces.