|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2002-11-08 12:28 UTC] derick@php.net
[2002-11-21 17:13 UTC] sniper@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Thu Oct 30 07:00:02 2025 UTC |
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);