Pagina 1 van 1

socket_read() doet raar

Geplaatst: 03 nov 2005, 17:12
door Sub Zero
Als ik socket_read() gebruik samen met PHP_NORMAL_READ, dan krijg ik meestal een rare error. Hoewel het mooi zou moeten werken volgens php.net.

De opstelling is als volgt. Er draait een zelfgeschreven daemon die plain tekst over de verbinding inleest en daarop een antwoord terug stuurt, ook plain tekst. Het versturen werkt, de daemon krijgt alles binnen, de daemon verstuurt dan ook de response, maar daar loopt het mis. Ik krijg dan volgende foutmelding.

Warning: socket_read() [function.socket-read]: unable to read from socket [0]: The operation completed successfully. in c:\PHP\www\daemon\index.php on line 34

Code: Selecteer alles

  $serviceport = 18002;
  $address = "127.0.0.1";

  $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

  if ($socket < 0) {
    die("socket_create failed. Reden: ".socket_strerror($socket));
  } else {
    echo "Socket gemaakt<br>\n";
  }

  $connection= socket_connect($socket, $address, $serviceport);
  if ($connection < 0) {
    echo "socket_connect() failed. Reden : ".socketstrerror($connection);
  } else {
    echo "Connectie gelegd.<br>\n";
  }

  $request = "CPU\r\n";

  socket_write($socket, $request, strlen($request));

  $info = "";
  while($info = socket_read($socket, 2048, PHP_NORMAL_READ)) {      //<-- regel 34
    echo "CPU-info : ".$info;
  }

  socket_close($socket);


Als ik een raw verbinding open naar de daemon doet ie alles goed. Dus het ligt echt aan het PHP gedeelte. Iemand een goeie tip? :)

Thanks!

Geplaatst: 03 nov 2005, 21:12
door Sub Zero
Probleem opgelost.

Code: Selecteer alles

socket_recv($socket, $info, 8192, 0);


Dit in de plaats zetten van de socket_read().

Toch bedankt :)