#43325 [Fbk->Opn]: feof() hangs on UDP stream

From: Date: Tue, 20 Nov 2007 09:10:46 +0000
Subject: #43325 [Fbk->Opn]: feof() hangs on UDP stream
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-119867@lists.php.net to get a copy of this message
ID: 43325 User updated by: mertcan at dpozitif dot com Reported By: mertcan at dpozitif dot com -Status: Feedback +Status: Open Bug Type: Streams related Operating System: Centos 5.0 PHP Version: 5.2.5 New Comment: Here is the full program: <?php echo rcon_komut("meta list", "123456", "62.68.207.16", 27015); function rcon_komut($komut, $rcon_pass, $ip, $port) { $response = ""; $msg = "ÿÿÿÿchallenge rcon"; $fp = fsockopen("udp://".$ip,$port, $errno, $errstr); stream_set_blocking($fp, 0); fputs($fp, $msg, strlen($msg)); $response = fgets($fp, 1024); $challenge = substr($response, 19, strlen($response) - 20); $msg="ÿÿÿÿrcon".$challenge."\"".$rcon_pass."\"".$komut.chr(0); fputs($fp, $msg, strlen($msg)); while (!feof($fp)) $response .= fgets($fp, 4096); fclose ($fp); return $response; } ?> Previous Comments: ------------------------------------------------------------------------ [2007-11-20 08:44:44] jani@php.net That's still just a piece of the script, a proper test script starts with <?php and ends in ?> and can be just copy'pasted and run.. ------------------------------------------------------------------------ [2007-11-19 17:19:22] mertcan at dpozitif dot com i gave $tanim in function use: function rcon_komut($komut, $rcon_pass, $ip, $port) { $msg = "ÿÿÿÿchallenge rcon"; $fp = fsockopen("udp://".$ip,$port, $errno, $errstr); stream_set_blocking($fp, 0); fputs($fp, $msg, strlen($msg)); $response = fgets($fp, 1024); $challenge = substr($response, 19, strlen($response) - 20); $msg="ÿÿÿÿrcon".$challenge."\"".$rcon_pass."\"".$komut.chr(0); fputs($fp, $msg, strlen($msg)); while (!feof($fp)) $response .= fgets($fp, 32); fclose ($fp); $response = substr($response, 6, strlen($response)-6); return $response; } ------------------------------------------------------------------------ [2007-11-19 16:31:10] jani@php.net Well, can you give a script that has some possibility of working properly? In the give script you have at least one variable which is not set anywhere: $komut ------------------------------------------------------------------------ [2007-11-19 14:56:21] mertcan at dpozitif dot com It still hangs: $fp = fsockopen("udp://".$ip,$port, $errno, $errstr); stream_set_blocking($fp, 0); ------------------------------------------------------------------------ [2007-11-19 13:29:07] jani@php.net Shouldn't you make the stream non-blocking? Try adding this after fsockopen: stream_set_blocking($fp, false); ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/43325 -- Edit this bug report at http://bugs.php.net/?id=43325&edit=1

« previous php.bugs (#119867) next »