|
||
---|---|---|
|
|
|
|
|
|
|
Anmerkung : Wegen einer Einschränkung in der aktuellen Zend Engine ist es nicht möglich , eine Konstante , wie etwa NULL , direkt als Parameter an Funktionen zu übergeben , die Referenzen auf Parameter als Argumente erwarten . Sie können stattdessen eine temporäre Variable oder einen Ausdruck , in dem der am weitesten links stehende Teilausdruck eine temporäre Variable ist , benutzen .
Anmerkung : Wenn Sie einen Fehler aufspüren wollen , müssen Sie unbedingt den Operator === benutzen . Weil socket_select( ) auch 0 zurückgeben kann , wird der Vergleich mit == sonst zu TRUE ausgewertet .
if ( false === socket_select($r , $w , $e = NULL , 0) ) { echo "socket_select( ) fehlgeschlagen , Grund : " . socket_strerror(socket_last_error() ) . "\n" ; }
Anmerkung : Seien Sie sich bewusst , dass manche Socket-Implementierungen sehr sorgfältig benutzt werden müssen . Ein paar grundsätzliche Regeln :
Sie sollten immer versuchen , socket_select( ) ohne Timeout zu benutzen . Ihr Programm sollte nichts tun , wenn keine Daten verfügbar sind . Code , der von Zeitbegrenzungen abhängig ist , ist normalerweise nicht portierbar und schwierig zu debuggen .
Es sollte kein Socket-Deskriptor in die Arrays eingefügt werden , wenn Sie nicht vorhaben , die Ergebnisse nach der Ausführung eines socket_select( ) Funktionsaufrufs zu prüfen und entsprechend darauf zu reagieren . Nachdem socket_select( ) beendet ist , müssen alle Sockets in allen Socket-Arrays geprüft werden . Jeder Socket , der zum Schreiben zur Verfügung steht , muss beschrieben werden und aus jedem Socket , der zum Lesen verfügbar ist , muss gelesen werden .
Bei Schreib / Leseoperationen auf den Sockets in den Arrays müssen Sie damit rechnen , dass nicht notwendigerweise alle Daten geschrieben / gelesen werden , die Sie angeben . Seien Sie darauf vorbereitet , dass Sie möglicherweise nur ein einziges Byte schreiben / lesen können .
Fast allen Socket-Implementierungen ist gemeinsam , dass sie nur eine einzige Ausnahme in dem except Array auffangen können . Dies ist , wenn mehr Daten ankommen , als der Socket lesen kann .