欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

socket - 关于php+rrd绘图问题

程序员文章站 2024-04-04 18:08:11
...
最近在做一个应用,我使用socket收集服务器的在线人数然后更新rrd数据库,但是最后都没显示出来,有哪位前辈有相关经验请指教,老板一直在催啊;
代码如下:
      $ss = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    socket_set_option($ss,SOL_SOCKET,SO_RCVTIMEO,array("sec"=>3, "usec"=>0 ) );
    socket_set_option($ss,SOL_SOCKET,SO_SNDTIMEO,array("sec"=>3, "usec"=>0 ) );
//$latencyStart = microtime(true); //延迟开始计时。
    if(socket_connect($ss,gethostbyname($tietu_host),$tietu_port))//更新且连接成功
    {
        socket_write($ss,"\xfe\x01");
        $data=explode("\x00",mb_convert_encoding(substr(socket_read($ss,1024),9), 'auto', 'UCS-2'));
        $tietu_players=$data[3];

        if(rrd_update($dbname,"N:$tietu_players")==true){
            echo"数据更新成功,数据为".$tietu_players;
        }else{
            echo"数据更新失败";
        }

    }

回复内容:

最近在做一个应用,我使用socket收集服务器的在线人数然后更新rrd数据库,但是最后都没显示出来,有哪位前辈有相关经验请指教,老板一直在催啊;
代码如下:

      $ss = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    socket_set_option($ss,SOL_SOCKET,SO_RCVTIMEO,array("sec"=>3, "usec"=>0 ) );
    socket_set_option($ss,SOL_SOCKET,SO_SNDTIMEO,array("sec"=>3, "usec"=>0 ) );
//$latencyStart = microtime(true); //延迟开始计时。
    if(socket_connect($ss,gethostbyname($tietu_host),$tietu_port))//更新且连接成功
    {
        socket_write($ss,"\xfe\x01");
        $data=explode("\x00",mb_convert_encoding(substr(socket_read($ss,1024),9), 'auto', 'UCS-2'));
        $tietu_players=$data[3];

        if(rrd_update($dbname,"N:$tietu_players")==true){
            echo"数据更新成功,数据为".$tietu_players;
        }else{
            echo"数据更新失败";
        }

    }
相关标签: php socket rrd