Hola!.
Estoy intentando hacer funcionar un cliente y servidor XML-RPC en PHP.
He buscado en bibliografía y en internet ejemplos, pero no ha funcionado ninguna de las implementaciones.
 
En un ejemplo con el cuál estoy ocupado, al ir comentando líneas y hacer pruebas.. creo que donde se queda la ejecución es en el lado cliente en "$r=$c->send($f);". Como si no lograra establecer comunicación con el servidor. 
No sé si se tratará de algo referido con la configuración de PHP, o con librerías xml, ....?? ??
 
Pego el código.. de ambos "cliente y servidor".. por si alguien puede aclararme.
 
Desde ya.. muchas gracias.
 
 
CLIENTE ------------------------ dv_clinte.php
 
 
<form name="form1" method="post" action="dv_cliente.php">
<input type="text" name="txtIsbn">
<input type="submit" name="Submit" value="Buscar">
</form>
 
<?php
 
include("xmlrpc-2.2.1/lib/xmlrpc.inc");
 
$isbn = $_POST['txtIsbn'];
 
echo $isbn;
 
 
if (isset($isbn)){ 
 
$f=new xmlrpcmsg('libros.buscaIsbn',array(new xmlrpcval($isbn, "int")));
 
print "<pre>".htmlentities($f->serialize())."</pre>\n";
 
$c=new xmlrpc_client("http://localhost/xml-rpc/dv_servidor.php");
 
//$c->setDebug(0);
 
$r=$c->send($f);
 
if(!$r){ 
die("Falló SEND"); 
 
echo ("fallo");
 
}
 
$v=$r->value();
 
if(!$r->faultCode()){ 
print "Título del libro ".$isbn." es ".$v->scalarval()."<BR>";
}else{ 
print "Falla: ";
print "Número de error: " .$r->faultCode()." Descripción del error '".$r->faultString()."'<BR>";
 
}
 
 
}
 
?>
 
 
SERVIDOR ------------------------ dv_servidor.php
 
<?php
 
//Ejemplo de un servidor XML-RPC en PHP
//Recibe un ISBN y regresa el Título //del libro.
 
include("xmlrpc-2.2.1/lib/xmlrpc.inc");
include("xmlrpc-2.2.1/lib/xmlrpcs.inc");
 
 
function BuscaIsbn($NoIsbn) {
 
        global $NoError;
        $err="";
 
        // Obtenemos el parametro
 
$ParIsbn=$NoIsbn->getParam(0);
 
 
        // Vemos si es del tipo correcto
        if(isset($ParIsbn) && ($ParIsbn->scalartyp()=="int")){
                // Obtenemos el valor numerico
        $isbn=$ParIsbn->scalarval();
        // Buscamos el libro
                switch($isbn){
                        case 1: $titulo="PHP";
                break;
                case 2: $titulo="XML_RPC";
                break;
                case 3: $titulo="Sitios web";
                break;
                case 4: $titulo="Linux";
                break;
                default:$NoError=1;
                $err="No hay libro ". "con   el ISBN '". $isbn . "'";
                }
        }else {
                // No es entero
                $err="Se requiere un número";}
 
                // Creamos la respuesta
                if ($err){ 
                        // Si hay error
                        return new xmlrpcresp(0, $NoError, $err);
                }else{
                         // Si no hay error
                        return new xmlrpcresp(new xmlrpcval($titulo));
                }
       }
 
 
 
        //Creamos el servidor
 
$s=new xmlrpc_server(array("libros.buscaIsbn" =>array("function" => "BuscaIsbn")));
 
?> 
  
 
