新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > Web开发 > PHP教程 > 正文:PHP中socket_read的问题

PHP中socket_read的问题

新客网 XKER.COM 2006-12-08 来源: 收藏本文

<?
 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;
  }
 }
*/
?>

收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐