socket_read的问题!!!!!---引用

王朝other·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

<?

error_reporting(E_ALL);

set_time_limit(0);

$runtimes = 100;

for ($i=0; $i<$runtimes; $i++)

{

$str = f_socket("www.baidu.com","/s?wd=10000" . $i);

echo "<textarea>" . $str . "</textarea><br>";

}

function f_socket($website,$url)

{

$service_port = getservbyname('www', 'tcp');

$address = gethostbyname($website);

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if (false == ($socket_result = socket_connect($socket, $address, $service_port)))

{

echo ("SOCKET_CONNECT_ERROR: " . socket_strerror(socket_last_error($socket)));

}

$in = "GET " . $url . " HTTP/1.1\r\n";

$in .= "Host: " . $website . "\r\n";

$in .= "Connection: close\r\n\r\n";

socket_write($socket, $in, strlen($in));

$start_time = time();

$str = "";

do

{

if (false === ($out = socket_read($socket, 8192)))

{

echo ("SOCKET_READ_ERROR: " . socket_strerror(socket_last_error($socket)));

$str = "";

break;

}

if (time() - $start_time > 1)

{

echo ("SOCKET_READ_ERROR: Timeout!!!");

$str = "";

break;

}

$str .= $out;

} while ($out != "");

socket_close($socket);

return $str;

}

/*

function f_socket($website,$url)

{

$fp = fsockopen($website, 80, $errno, $errstr, 30);

if (!$fp)

{

}

else

{

$out = "GET " . $url . " HTTP/1.1\r\n";

$out .= "Host: " . $website . "\r\n";

$out .= "Connection: Close\r\n\r\n";

fwrite($fp, $out);

$str = "";

$start_time = time();

while (!feof($fp))

{

$str .= fread($fp, 8192);

if (time()-$start_time > 1)

{

$str = "";

echo "timeout!!!";

break;

}

}

return $str;

}

}

*/

?>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有  導航