Home >Backend Development >PHP Tutorial >深入解析fsockopen与pfsockopen的区别_PHP

深入解析fsockopen与pfsockopen的区别_PHP

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-01 12:04:001006browse

按手册上说,这两个函数的唯一区别是,pfsockopen是持续连接,而fsockopen不是.
我写了个代码了一下:
复制代码 代码如下:
$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  echo httpPost($host,$url,$data,$pffirst)."



";
}
$middleTime = microtime(true);
for ($index = 0; $index  echo httpPost($host,$url,$data,!$pffirst)."

";;
}
$endTime = microtime(true);
 echo ($pffirst?"pfsocket":"fsocket").":".($middleTime-$startTime);
 echo "
";
 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)
\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."

";

 $resp='';
 //while (!feof($conn)) {
 // $resp .= fgets($conn);
 /
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn