Ostatnio pracowałem nad budowaniem serwera TCP za pomocą PHP (wiem, że to zły wybór, ale to jest standard pracy), więc dotarłem do punktu, w którym jest niezawodny prototyp do przeprowadzania testów na nim i pokazał dobre wyniki. na początku użyłem funkcji gniazda do obsługi połączenia dla serwera i działało dobrze, ale jedną z głównych rzeczy w projekcie jest zapewnienie bezpieczeństwa kanału, więc przełączyłem się na stream_socket.Jak sprawdzić, czy połączenie jest resetowane przez peer w php?
to, czego chcę, to odpowiednik socket_last_error w grupie stream_socket, dzięki czemu mogę wiedzieć, kiedy połączenie z klientem jest zamknięte lub nie. bieżąca sytuacja wszystkie procesy będą czekać na timeout timer, aby zwolnić nawet wtedy, gdy klient jest już zamknięty.
Przeszukałem sieć i odkryłem, że nie ma sposobu, aby dowiedzieć się o tym za pośrednictwem PHP i odkryłem, że niektórzy ludzie otworzyli zgłoszenie problemu, prosząc o odpowiednik socket_last_error dla strumienia. https://bugs.php.net/bug.php?id=34380
więc czy jest i tak wiadomo, kiedy sygnał FIN_WAIT zostanie podniesiony, czy nie?
Dziękuję
Dziękuję Janus za odpowiedź, ale. jak wiesz, nie jest możliwe, aby hałasować strumieniem, wysyłając dane, aby zobaczyć, kiedy jest on zepsuty, czy też obecna sytuacja jest taka, że serwer czeka na działania klienta, więc z tym co sugerujesz, nie wydaje mi się to możliwe? – user1304594