私は最近、PHP を使用して TCP サーバーを構築する作業を行っています (最初は間違った選択をしていることはわかっていますが、これが作業の標準です)。そのため、テストを実行するための信頼できるプロトタイプがあり、良い結果が得られるようになりました。 . 最初はソケット関数を使用してサーバーへの接続を処理しましたが、うまく機能していましたが、プロジェクトの主な目的の 1 つはチャネルを保護することなので、stream_socket に切り替えました。
私が欲しいのは、stream_socket グループの socket_last_error に相当するもので、クライアントとの接続が閉じられているかどうかをいつでも知ることができます。現在の状況では、クライアントがすでに閉じられていても、すべてのプロセスがタイムアウト タイマーの解放を待ちます。
私はネットを検索しましたが、PHP を介してそれを理解する方法がないことがわかりました。何人かの人々がストリームに相当する socket_last_error を要求する問題チケットを開いたことがわかりました。 https://bugs.php.net/bug.php?id=34380
FIN_WAIT シグナルが発生したかどうかを知る方法はありますか?
ありがとうございました、