Socket-Problem

DarkLoerd

Grünschnabel
halllo
ich beschäftige mich gerade mit socket programmierung in php und bin vor kurzem auf ein problem gestoßen. und zwar benutze ich die funktion "fgets" um daten vom server zu empfangen. nur ist es so, dass die seite, wenn ich diese benutze, und sich gerade keine daten im buffer befinden, einfach an der stelle wartet. ich möchte aber, dass nur dann etwas ausgelesen wird, wenn auch etwas im buffer vorhanden ist; sonst soll die seite weitergehen. habe schon die funktion socket_get_status ausprobiert, um nachzusehen wie viel daten im buffer sind, aber diese ("unread_bytes") gibt immer 0 aus (?). ideen? tia
 
Re: php socket problem

um es nochmal zu verdeutlichen :
also mein script verbindet sich mit einem server.
dieser server schickt ab und zu daten.
mit folgender schleife funktioniert es und die daten werden auch alle empfagen:
Code:
while (!feof($fp)) {
$rec .= fgets($fp, 1024);
... 
}
ich möchte es aber so machen :
Code:
while ($break == "no") {
sleep(1);
$sockinfo = socket_get_status($fp);
if ($sockinfo["unread_bytes"] > 0) {
$rec .= fgets($fp, 1024);
...
}
}
eigentlich soll er beim letzteren jede sekunde nachsehen ob etwas im buffer ist, wenn ja auslesen usw., wenn nein wieder 1 sek warten...
und das funktioniert nicht, da $sockinfo["unread_bytes"] immer gleich 0 ist.
 
Ich steh momentan GEANAU vor dem selben Problem! Daten sind im Buffer, auf unread_bytes hat den wert 0!

Hat jemand eine Idee?
 
Ich hatte das Problem bei mir auch einmal. Habe dann gemerkt, dass er bei mir erst dann unter unread_byte etwas anderes anzeigt, wenn ich zuvor einmal fgets($fp, 1) aufgerufen habe. Vll ist es bei dir ja der gleiche Fall.
 
Habs grad rausgefunden, das da erst was drinsteht nach einen fread/fgets

vorher gibt der 0 zurück, problem hab ich dennoch gelöst...

THX! Trotzdem ;D

MFG
Schinken
 
Zurück