ネットワーク接続を分析するために作成した小さなアプリケーションがあります。ブラウザーから実行され、ローカルの PHP/Apache サーバーに接続します。次に、生のソケットを介して ping パケットを送信するように PHP に要求します。問題は、ping しようとしているホストが動作していないか、ping に応答しない場合、サーバーから応答が得られないことです。
Apache が再起動されるまで、ソケット リクエストは存続します。最近、アプリケーションからさまざまな結果が得られており、ソケットの使用が多すぎる apache のせいにしています。現在、AJAX 呼び出しのタイムアウトを設定しており、満足しています。しかし、到達不能なホストに対して 500,000 のソケットが開かれないように、PHP にタイムアウトを行わせる必要があります。
サンプルコード:
$sockconn = @socket_connect($socket, $target, null);
if(!$sockconn)
{
$raw['error'] = socket_strerror(socket_last_error());
$raw['status'] = false;
return $raw;
}
これはタイムアウトしない機能です。タイムアウトにする必要があります。また、PHP スクリプトの実行時間はソケットに影響しません。
私は無知です。