zoukankan      html  css  js  c++  java
  • php fsockopen异步请求非阻塞模式执行

    //非阻塞请求
    function sock_data($url) {
        $host = parse_url($url,PHP_URL_HOST);
        $port = parse_url($url,PHP_URL_PORT);
        $port = $port ? $port : 80;
        $scheme = parse_url($url,PHP_URL_SCHEME);
        $path = parse_url($url,PHP_URL_PATH);
        $query = parse_url($url,PHP_URL_QUERY);
        if($query) $path .= '?'.$query;
        if($scheme == 'https') {
            $host = 'ssl://'.$host;
        }
     
        $fp = fsockopen($host,$port,$error_code,$error_msg,1);
        if(!$fp) {
            return array('error_code' => $error_code,'error_msg' => $error_msg);
        }
        else {
            stream_set_blocking($fp,0);//开启了非阻塞模式
            stream_set_timeout($fp,1);//设置超时
            $header = "GET $path HTTP/1.1
    ";
            $header.="Host: $host
    ";
            $header.="Connection: close
    
    ";//长连接关闭
            fwrite($fp, $header);
            usleep(1000); // 如果没有这延时,可能在nginx服务器上就无法执行成功
            fclose($fp);
            return array('error_code' => 0);
        }
        
    }
    

      测试一下:

    echo date('Y-m-d H:i:s'), PHP_EOL;
    sock_data("http://www.baidu.com");
    echo date('Y-m-d H:i:s'), PHP_EOL;
  • 相关阅读:
    View(视图)
    计算器 ——给按钮添加监听器
    Activity(活动)
    UI组件
    计算器界面——GridLayout
    信息界面——GridLayout
    Android计算器界面 TableLayout
    javaji基础x2
    java的开始
    数据类型
  • 原文地址:https://www.cnblogs.com/sky-yu/p/9837515.html
Copyright © 2011-2022 走看看