繁体中文
设为首页
加入收藏
当前位置:PHP技术首页 >> PHP基础 >> PHP中socket_read的问题

PHP中socket_read的问题

2004-11-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:
关键字:socket 问题 read PHP

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 "
";

}

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;

}

}

*/

?>

责任编辑:admin
相关文章