Hello !

I am very new to PHP so please don't laugh if my code really sucks ;=)

What i am trying to do is :

1) Opening an UDP connectión to a server (That works allright)
2) Making a query to the server (That works allright)
3) Recieve an unknow number of UDP packets with an unknown packet size (This
is my problem)

I don't know the packet size and i don't know how many packets the server
will return...
Take a look at the WHILE loop because thats where it "hangs".
If i remove the WHILE loop and just make a fread($socket,1024) it will
return some data.

My questions  are as follow :
1) How can i make sure that ALL data has been recieved ?
2) Is it possible to read each UDP packet into it's own variable (array) ???

I would be very happy if someone could answer one or all question.


<?
$ip      = "192.246.40.65";
$port    = 27950;
$command = "˙˙˙˙getservers 60 empty full";
$data    = '';

Echo "Connecting to Master Server : $ip:$port<br>";
$socket = fsockopen("udp://$ip",$port,$errno,$errstr,2);
if (!$socket)
 {
   echo "There was an error connecting to the Master Server<br>";
   echo "Error returned was : $errorno and $errostr";
   exit;
 }  //Socket error
 else
 {
   echo "Connection established ..<br>";
   If (!fwrite($socket,$command))
  {
    echo "There was an error querying the master server ..";
    exit;
  } //Fwrite error
 echo "Query complete ..<br>";

while (!feof($socket))
 {
    echo "Reading data ..<br>";
    $data .= fread($socket,4096);
  }  //End of read section

  echo "$data<br>";

   fclose($socket);
   echo "Connection closed ..<br>";
 } //End of main loop

?>



-- 
PHP Windows Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to