php原生socket调用zookeeper的方法

function Send($ip,$port,$path)
{
    if(($socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) {
      return false;
    }

    //set socket timeout
    socket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO,    array("sec"=>10, "usec"=>0));

    if(($result = socket_connect($socket, $ip, $port)) < 0) {
      socket_close($socket);
      return false;
    }

    $in = authenticate('');
    if(!socket_write($socket, $in, strlen($in))) {
        socket_close($socket);
        return false;
    }
    $out = "";
   $buff = @socket_read($socket, 256);
    $out .= $buff;

    $data = unpack("Nlen/Nversion/Ntimeout/JsessinoId/a*",$out);

    var_dump($data);die;
    $in = packData($path);
    if(!socket_write($socket, $in, strlen($in))) {
        socket_close($socket);
        return false;
    }

    $out = "";
   $buff = @socket_read($socket, 2048);
    $out .= $buff;

    socket_close($socket);
    $data = unpackData($out);
    var_dump(json_decode($data['data'],true));
}

function authenticate($pwd)
{
    $reqlen = strlen($pwd);
    $allLen = 28 + 16;
    return pack("N2JNJa16",$allLen - 4,0,0,1000,0,$pwd);
}
function packData($path)
{
    $reqlen = strlen($path);
    $allLen = 16 + $reqlen + 1;
    return pack("N4a*C",$allLen - 4,1,4,$reqlen,$path,0);
}
function unpackData($bin)
{
    $len = unpack("Nlen",$bin);
    if(!empty($len['len'])){
        $data = unpack("Nlen/Nxid/Jxxid/Nerr/Ndatalen",$bin);
        $data = unpack("Nlen/Nxid/Jxxid/Nerr/Ndatalen/a".$data['datalen']."data/a*",$bin);
        return $data;
    }
    return [];
}
Send("120.26.102.171",2181,'/config/mysqldb/vpgame');