jak zabezieczyc sie przed zapetleniem programu? fsockopen + pusta odp servera

       

Podstrony


telcocafe

@edit, przepraszam moderatorow, zapomnialem o przedrosktu w temacie
jesli bardo wam to rpzeszkadza prosze o dodanie [php] na poczatku tematu :)

witam

mam problem ze skryptem do sprawdzania statusu servera do gry

skrypt dizala tak:

laczy sie z serverem poprzez fsockopen
potem jak server jest online wysyla mu bajtow anych, server z gra odpowiada i generuje plik XML , wsyzstkie inne servery (nie do gry)[np http] nie generuja xmla i petla while mi sie zapetla az wywala blad po 60 sec

kod funkcji

function otserv_info($host = 'localhost', $port = 7171) { $sock = @fsockopen($host, $port, $errno, $errstr, 1); if($sock) { fwrite($sock, chr(6).chr(0).chr(255).chr(255).'info'); while(!feof($sock)) $data .= fgets($sock, 1024); fclose($sock); $xml_parser = xml_parser_create(); xml_parse_into_struct($xml_parser, $data, $vals, $index); xml_parser_free($xml_parser); $otserv = array('status' => 1,'uptime' => $vals[1]['attributes']['UPTIME'],'name' => $vals[1]['attributes']['SERVERNAME'],'from' => $vals[1]['attributes']['LOCATION'],'url' => $vals[1]['attributes']['URL'],'source' => $vals[1]['attributes']['SERVER'].' ('.$vals[1]['attributes']['VERSION'].')' ,'playersonline' => $vals[3]['attributes']['ONLINE'],'playersmax' => $vals[3]['attributes']['MAX'],'info' => $vals[6]['value']); } else { $otserv = array('status' => 0,'errno' => $errno,'errstr' => $errstr); } return $otserv; }

gdy wywoluje ja tak:
print_r(otserv_info('www.guia3d.com'));
wszystko jest ok, bo to server gry
lecz gdy wywolam np server www
print_r(otserv_info('www.wp.pl', 80));

zapetla sie i wywala error

jak to naprawic ?
myslalem zeby usunac petle ale nei mam pomyslu czym ja zastapic.
Użytkownik bikstopa edytował ten post 28 sierpień 2006, 15:18
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.