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');