加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用单一连接编写多个帖子请求 – PHP

发布时间:2020-12-14 04:47:37 所属栏目:百科 来源:网络整理
导读:我正在使用以下代码段写入服务器. $fp = connect();$sent_requests = 0;function connect() { $addr = gethostbyname("example.com"); $fp = fsockopen("$addr",80,$errno,$errstr); socket_set_blocking( $fp,false ); if (!$fp) { echo "$errstr ($errno)b
我正在使用以下代码段写入服务器.

$fp = connect();
$sent_requests = 0;
function connect() {
    $addr = gethostbyname("example.com");
    $fp = fsockopen("$addr",80,$errno,$errstr);
    socket_set_blocking( $fp,false );
    if (!$fp) {
        echo "$errstr ($errno)<br />n";
        exit(1);
    } else{
        echo "Connectedn";
        return $fp;
    }
}


function sendTestCalls($load){
    global $fp,$sent_requests;
    if(!$fp){
        echo "reconnecting";
        $sent_requests = 0;
        //echo stream_get_contents($fp) . "n";
        fclose($fp);
        $fp = connect();
    }
    $data = "POST /test HTTP/2.0rn";
    $data.= "Host: example.comrn";
    $data.= "Content-Type: application/jsonrn";
    $data.= "Content-Length: ".strlen($load)."rn";
    $data.= "Connection: Keep-Alivern";
    $data.= "xYtU87BVFluc6: 1rn";
    $data.= "rn" . $load;

    $bytesToWrite = strlen($data);
    $totalBytesWritten = 0;

    while ($totalBytesWritten < $bytesToWrite) {
        $bytes = fwrite($fp,substr($data,$totalBytesWritten));
        $totalBytesWritten += $bytes;
    }

    $sent_requests++;
}
$time = time();
for($i=0; $i<1000; $i++) {
    sendTestCalls('{"justtesting": "somevalue"}');
}
fclose($fp);
$time_taken = time() - $time;//might be a bit inaccurate
echo "Time Taken: " . $time_taken . "n";

当我检查我的服务器上的访问日志时,收到的请求少于1000个(范围为0到900).我在这做错了什么?

EDIT1
我想我的插座超时了.我该怎么做才能检查它是否在这种情况下重新连接断开连接.我尝试使用stream_get_meta_data($fp),但它没有效果.

解决方法

尝试在每个请求之前插入此内容:

????$info = stream_get_meta_data($fp);????if($info [‘timed_out’]){????????FCLOSE($FP);????????$fp = connect();????}

(编辑:李大同)

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

    推荐文章
      热点阅读