Wie kann ich wissen, wann die Verbindung von Peer in PHP zurückgesetzt wird?

8

Ich habe in letzter Zeit daran gearbeitet, einen TCP-Server mit PHP zu bauen (ich kenne eine falsche Wahl, aber das ist der Arbeitsstandard), also habe ich einen Punkt erreicht, an dem es einen zuverlässigen Prototyp gibt, um Tests darauf durchzuführen zeigte gute Ergebnisse. Am Anfang habe ich Socket-Funktionen verwendet, um die Verbindung für den Server zu handhaben, und es funktionierte gut, aber eines der wichtigsten Dinge am Projekt ist, den Kanal zu sichern, so dass ich zu stream_socket wechselte.

Was ich will, ist ein socket_last_error-Äquivalent in der stream_socket-Gruppe, so dass ich weiß, wann die Verbindung mit dem Client geschlossen ist oder nicht. Die aktuelle Situation alle Prozesse warten auf Timeout-Timer, auch wenn der Client bereits geschlossen ist.

Ich habe das Internet durchsucht und festgestellt, dass es keine Möglichkeit gibt, es über PHP herauszufinden, und ich habe festgestellt, dass einige Leute das Ticket geöffnet haben, um nach socket_last_error zu fragen, das für Stream äquivalent ist. Ссылка

Gibt es also trotzdem etwas zu wissen, wenn das FIN_WAIT Signal ausgelöst wird oder nicht?

Danke,

    
user1304594 31.03.2012, 05:41
quelle

1 Antwort

1

Ich glaube nicht, dass die stream_socket -Familie möglich ist, es sieht so aus, als wäre sie zu hoch.

Ich habe versucht, eine sehr hackische Lösung zu machen, ich weiß nicht, ob es für Sie funktionieren wird, es ist nicht sehr zuverlässig:

%Vor%

Starten: php ./server.php

Verbinden: nc localhost 8000 | head -c1

Serverausgabe:

%Vor%     
Janus Troelsen 31.03.2012 13:02
quelle

Tags und Links