See More

"; 这是序列化后的请求数据 $send_len = 0; do { //发送 if (($sends = socket_write($socket, $request, strlen($request))) === false) { throw new Exception("[PPython Error] socket write error.", SOCKET_ERROR); } $send_len += $sends; $request = substr($request, $sends); }while ($send_len < $req_len); //接收 $response = ""; while(true) { $recv = ""; if (($recv = socket_read($socket, 1400)) === false) { throw new Exception("[PPython Error] socket read error.", SOCKET_ERROR); } if ($recv == "") { break; } $response .= $recv; //echo "{$response}
"; } //关闭 socket_close($socket); $rsp_stat = substr($response, 0, 1); //返回类型 "S":成功 "F":异常 $rsp_msg = substr($response, 1); //返回信息 //echo "返回类型:{$rsp_stat},返回信息:{$rsp_msg}
"; if ($rsp_stat == "F") { //异常信息不用反序列化 throw new Exception("[PPython Error] Receive Python exception: ".$rsp_msg, LAJP_EXCEPTION); } else { if ($rsp_msg != "N") //返回非void { //反序列化 return unserialize($rsp_msg); } } } ?>