加入收藏 | 设为首页 | 会员中心 | 我要投稿 甘孜站长网 (https://www.0836zz.com.cn/)- 运维、物联设备、数据计算、智能推荐、云管理!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

深入解析fsockopen与pfsockopen的差异

发布时间:2022-07-23 09:23:58 所属栏目:PHP教程 来源:互联网
导读:按手册上说,这两个函数的唯一区别是,pfsockopen是持续连接,而fsockopen不是. 我写了个代码了一下: 复制代码 代码如下: ?php $data=1,0,721,73,1,0,0,43290000,0,60D81D509BC00451,3,FFFFFFFF; //http://10.144.99.114/SANEX_NEW/modules/subscribemanager/te
  按手册上说,这两个函数的唯一区别是,pfsockopen是持续连接,而fsockopen不是.
 
  我写了个代码了一下:
 
  复制代码 代码如下:
 
  <?php
 
  $data="1,0,721,73,1,0,0,43290000,0,60D81D509BC00451,3,FFFFFFFF";
 
  //http://10.144.99.114/SANEX_NEW/modules/subscribemanager/test.php
 
  $host = '127.0.0.1';
 
  $url = "/aa.php";
 
  $pffirst = false;
 
  $times = 1000;
 
  $startTime = microtime(true);
 
  for ($index = 0; $index < $times; $index++) {
 
   echo httpPost($host,$url,$data,$pffirst)."<hr><br />";
 
  }
 
  $middleTime = microtime(true);
 
  for ($index = 0; $index < $times; $index++) {
 
   echo httpPost($host,$url,$data,!$pffirst)."<hr><br />";;
 
  }
 
  $endTime = microtime(true);
 
   echo ($pffirst?"pfsocket":"fsocket").":".($middleTime-$startTime);
 
   echo "<br />";
 
   echo ($pffirst?"fsocket":"pfsocket").":".($endTime-$middleTime);
 
  $count=0;
 
  //发包函数
 
  function httpPost($host,$url,$data,$p)
 
  {
 
  global $count;
 
   $func = $p?"pfsockopen":"fsockopen";
 
   $conn = $func($host,80,$errno, $errstr, 30);
 
   if (!$conn)
 
   {
 
    echo "$errstr ($errno)<br />/n";
 
    return;
 
   }
 
   $header = "POST ".$url." HTTP/1.1/r/n";
 
   $header.= "Host : {$host}/r/n";
 
   $header.= "Content-type: application/x-www-form-urlencoded/r/n";
 
   $header.= "Content-Length:".strlen($data)."/r/n";
 
   $header.= "Connection: Keep-Alive/r/n/r/n";
 
   $header.= "{$data}/r/n/r/n";
 
   fwrite($conn,$header);
 
   $count++;
 
   echo $count.' '.$header."<br /><br />";
 
   $resp='';
 
   //while (!feof($conn)) {
 
   // $resp .= fgets($conn);
 
   /。
 

(编辑:甘孜站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读