1

私はこの問題に悩まされています。私はサーバーを使用しています (私は完全な過剰な権利を持っており、何でもできます)。これで、ポートに接続してデバイスからデータを受信するファイルを実行したいと思います。これらのデバイスは、TCP を使用してデータを送信します。

サーバー ファイルは、24 時間 365 日、中断することなく継続的に実行する必要があります。しかし、それは起こっていません。より深く理解するために、コードを貼り付けています。

$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");
$result = socket_listen($socket) or die("Could not set up socket listener\n");
while(true) {
    if ($spawn = socket_accept($socket)) {

        if ($input = socket_read($spawn, 1024)) {
            // MY REST OF THE CODE HERE
        }

        socket_close($spawn);
        unset($spawn);
    }
}

5 行目では、サーバーが接続を受け入れ、次のループが実行されます。デバイスが継続的にデータを送信している場合はうまくいきます。デバイスを待機し、データを受信したら、さらに処理を進めます。しかし、数時間後、サーバー ファイルが応答を停止します。ポートは消費されていますが、サーバーはデータを処理していません。ポートが機能しているかどうかをテストするクライアント ファイルを作成しました。クライアント ファイルがサーバーに正常に接続されました。

このファイルを 24 時間年中無休でエラーなく実行するにはどうすればよいですか。もう 1 つお聞きしたいのは、デバイスがしばらくの間データの送信を停止した場合はどうなるかということです。5行目に影響しますか?これはファイルハングにつながりますか?

4

0 に答える 0