周梦康 发表于 2014-03-24 3794 次浏览 标签 : fsockopen
测试需要访问的文件代码
function fsockopen_test(){
    $hostname = 'm.cn';
    $url = '/bbb/2.php';
    $fp = fsockopen($hostname, 80, $errno, $errstr, 5);
    if (!$fp) {
        echo "$errstr ($errno)";
        return false;
    }
    $header = "GET $url HTTP/1.1\r\n"; 
    $header.="Host: $hostname\r\n";
    $header.="Connection: Close\r\n\r\n";//长连接关闭
    fwrite($fp, $header);
    /*$html = '';
    while (!feof($fp)) {
        $html.=fgets($fp);
    }
    echo $html;*/
    //如果上面这段代码不注释,还是会对$fp进行读取,所以还是会阻塞,所以类似的问题,我们要注意
    fclose($fp);
}
echo time(),'<br>';
fsockopen_test();
echo time(),'<br>';
需要注意的地方:
$header的写法必须严格依据上面的,数目不能有变,否则会出错
头信息中Connection的值必须为Close否则会阻塞
fscokopen请求的地址中的代码:
sleep(6);
$fp  =  fopen ( './data.txt' ,  'w' );
fwrite ( $fp ,111);
fclose ( $fp );

评论列表