background image

 

 

$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