Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/11/2009, 06:54
Avatar de maycolalvarez
maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Enviar XML por socket y recibir respuesta XML

el ejemplo básico del socket cliente en el manual de php te sirve, sólo debes cambiarle el servidor, el puerto, etc. te traerá el resultado como un string y luego podrías usar una libreria para interpretar el xml (expat, SimpleXML:"solo php5"). Suerte!:

Código PHP:
<?php
error_reporting
(E_ALL);

echo 
"<h2>Conexi&oacute;n TCP/IP</h2>\n";

/* Obtener el puerto para el servicio WWW. */
$puerto_servicio getservbyname('www''tcp');

/* Obtener la direccion IP del host de destino. */
$direccion gethostbyname('www.example.com');

/* Crear un socket TCP/IP. */
$socket socket_create(AF_INETSOCK_STREAMSOL_TCP);
if (
$socket 0) {
    echo 
"socket_create() fall&oacute;: motivo: " socket_strerror($socket) . "\n";
} else {
    echo 
"OK.\n";
}

echo 
"Intentando una conexi&oacute;n con '$direccion' en el puerto '$puerto_servicio'...";
$resultado socket_connect($socket$direccion$puerto_servicio);
if (
$resultado 0) {
    echo 
"socket_connect() fall&oacute;.\nMotivo: ($resultado) " .
         
socket_strerror($resultado) . "\n";
} else {
    echo 
"OK.\n";
}

$entrada "HEAD / HTTP/1.1\r\n";
$entrada .= "Host: www.example.com\r\n";
$entrada .= "Connection: Close\r\n\r\n";
$salida '';

echo 
"Enviando petici&oacute;n HTTP HEAD...";
socket_write($socket$entradastrlen($entrada));
echo 
"OK.\n";

echo 
"Leyendo respuesta:\n\n";
while (
$salida socket_read($socket2048)) {
    echo 
$salida;
}

echo 
"Cerrando socket...";
socket_close($socket);
echo 
"OK.\n\n";
?>