$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);
//}
//fclose($conn);
return
$resp
;
}
?>
结果发现:
代码的倒数第二行,如果把
//fclose($conn);注释掉,结果是:
fsocket:11.04693198204
pfsocket:0.34867787361145
如果不注释:
fsocket:12.509312152863
pfsocket:11.120275974274
可以看出,fsocketopen 默认每次处理结束后,就算协议头是 Keep-Alive,连接仍然断掉了.
而 pfsocketopen 在 Keep-Alive 条件下,连接可以被下一次重复利用.
一次连接发送大量数据时,推荐使用 pfsocketopen