ID: 20317 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Open +Status: Feedback Bug Type: Sockets related Operating System: Redhat Linux 7.3 PHP Version: 4.2.1 New Comment:
Please try using this CVS snapshot: http://snaps.php.net/php4-latest.tar.gz For Windows: http://snaps.php.net/win32/php4-win32-latest.zip Previous Comments: ------------------------------------------------------------------------ [2002-11-08 12:24:35] [EMAIL PROTECTED] Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 46080 bytes) in /usr/local/apache/htdocs/login.php on line 88, which is the line with socket_sendto() Here is the code: Basically it sends a UDP request to authmsgque service, and expect it receive some response back. $address = gethostbyname ('localhost'); $service_port = getservbyname ('authmsgque', 'udp'); /* Create a TCP/IP socket. */ $socket = socket_create (AF_INET, SOCK_DGRAM, 0); if ($socket < 0) { // echo "socket_create() failed: reason: " . socket_strerror ($socket) . "<br>\n"; } else { // echo "socket_create() OK.<br>\n"; } // echo "Attempting to connect to '$address' on port '$service_port'...<br>\n"; $outbuf = "abc+++cde"; for ($i = 1; $i <= 3; $i++) { $result = socket_sendto ( $socket, $outbuf, strlen($outbuf), 0, $address , $service_port ); if ($result < 0) { // echo "socket_sendto() failed.\nReason: ($result) " . socket_strerror($result) . "<br>\n"; } else { // echo "socket_sendto() OK.<br>\n"; } $inbuf = "NO RESPONSE"; $remote_address = "abc"; $remote_port = 100; echo "Reading response:<br>\n\n"; $result2 = 0; /* Prepare the read array */ $read = array($socket); if (false == ($num_changed_sockets = socket_select($read, $write = NULL, $except = NULL, 5))) /* Error handling */ ; // echo "socket_select() failed.\nReason: timeout <br>\n"; else if ($num_changed_sockets > 0) { /* At least at one of the sockets something interesting happened */ $result2 = socket_recvfrom ( $socket, $inbuf, 1024, 0, $remote_address, $remote_port ); // echo "result2 : ".$result2."<br>\n"; // echo "remote_address : ".$remote_address."<br>\n"; // echo "remote_port : ".$remote_port."<br>\n"; // echo "received buffer : ".$inbuf."<br>\n"; if ( $result2 > 0 && strcmp($inbuf,"NO RESPONSE") != 0 ) break; } } socket_close ($socket); ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=20317&edit=1
