PHP中socket_read的问题
<? 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.1rn"; $in .= "Host: " . $website . "rn"; $in .= "Connection: closernrn"; 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.1rn"; $out .= "Host: " . $website . "rn"; $out .= "Connection: Closernrn"; 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; } } */ ?>
返回类别: 教程 上一教程: PHP4在Windows2000下的安装 下一教程: 简朴的页面缓冲技术
您可以阅读与"PHP中socket_read的问题"相关的教程: · PHP的计数器程序:解决全部可能碰到的问题 · php作wap开发时碰到的问题 · 有关在Windows下配置PHP+Apache+Optimizer失败的问题解决方案 · PHP中操作MySQL数据库的一些要注重的问题 · 使用php动态生成gif时碰到的问题和解决办法
|