|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2003-03-18 12:36 UTC] wez@php.net
[2003-03-21 22:01 UTC] caesar_iv4 at yahoo dot com
[2003-07-16 12:36 UTC] pollita@php.net
[2003-07-16 16:56 UTC] caesar_iv4 at yahoo dot com
[2003-07-16 20:49 UTC] sniper@php.net
[2003-07-21 01:29 UTC] sniper@php.net
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Dec 01 02:00:01 2025 UTC |
I use php 4.3.2 latest cvs even php 5 and it stil occurs i am trying to write a small php-based httpdeamon and when i was testing it with IE6, open the connection and the page starts loading, but when i click on stop i get the usual crashed program box here's the script: <? function& sock() { global $SRV; if (($sock = socket_create (AF_INET, SOCK_STREAM, 0)) < 0) sock_err($sock,"socket_create()"); if (($ret = socket_bind ($sock, $SRV["IP"], $SRV["PORT"])) < 0) sock_err($sock,"socket_bind()"); if (($ret = socket_listen ($sock, $SRV["MAX_CL"])) < 0) sock_err($sock,"socket_listen()"); return $sock; } function send(&$sock,$msg,$echo=true) { global $CORE_DUMP; // socket_write($sock,$msg,strlen($msg)); fwrite($CORE_DUMP,$msg,strlen($msg)); if($echo) echo $msg; } function log_access($ip) { global $LOG_ACCESS; $str = date("r")." ".$ip."\n"; fwrite($LOG_ACCESS,$str,strlen($str)); } function sock_err(&$sock,$fn) { global $LOG_ERROR; $str = $fn." failed, reason: ".socket_strerror(socket_last_error($sock)); echo $str; fwrite($LOG_ERROR,$str,strlen($str)); } error_reporting (E_ALL); set_time_limit (0); ob_implicit_flush(); echo "07\n"; $sock = &sock(); echo "09\n"; do { echo "11\n"; if (($msgsock = socket_accept(@$sock)) < 0) sock_err(@$msgsock,"socket_accept()"); echo "14\n"; socket_getpeername(@$msgsock,$ip); echo "15\n"; log_access($ip); echo "16\n"; $str = ""; echo "18\n"; $i = 0; echo "20\n"; while ($msgsock) { echo "23\n"; if (!$msgsock) break; echo $msgsock; $buf = socket_read($msgsock, 2048, PHP_BINARY_READ); echo "25\n"; if (!$buf) { sock_err(@$msgsock,"socket_read()"); break; } echo "26\n"; echo "28\n"; } echo "38\n"; socket_close (@$msgsock); echo "40\n"; } while (@$sock); socket_close (@$sock); ?> the echoes were to pin-point the problem