fsockopen

fsockopen -- Abre una conexión de dominio Internet o Unix via sockets.

Descripción

int fsockopen ( string hostname, int port [, int errno [, string errstr [, double timeout]]])

Inicia una conexión de dominio Internet ( AF_INET ) o Unix (AF_UNIX ) . Para el domino Internet , abrirá una conexión TCP hacia el ordenador hostname en el puerto port . Para el dominio Unix , hostname se usará como ruta al socket , port debe ser 0 para este caso . El parámetro opcional timeout se puede usar para especificar un timeout en segundos para establecer la conexión .

fsockopen( ) devuelve un puntero a fichero , el cual se puede usar junto con las otras funciones de ficheros (como fgets( ) , fgetss( ) , fputs( ) , fclose( ) , feof( ) ) .

Si la llamada falla , esta devolverá falso y si los parámetros opcionales errno y errstr están presentes , indicarán el error del sistema que ocurrió en la llamada connect( ) . Si errno es 0 y la función devolviá falso , nos indica que el error ocurrió antes de la llamada connect( ) . Esto es debido principalmente a problemas inicializando el socket . Observe que los argumentos errno y errstr deben ser pasados por referencia .

Dependiendo del entorno , el dominio Unix o el parámetro opcional , timeout puede no estar disponible .

Por defecto , el socket será abierto en modo de bloqueo . Puede cambiarlo a modo de no bloqueo usando set_socket_blocking( ) .

Ejemplo 1 . ejemplo con fsockopen

 
$fp

 
=

 
fsockopen(

 
"www.php.net"

 
,

 
80

 
,

 
$errno

 
,

 
$errstr

 
,

 
30)

 
;

 
if(!$fp

 
)

 
{

 
echo

 
"$errstr

 
($errno

 
)

 
br

 
\n"

 
;

 
}

 
else

 
{

 
fputs($fp

 
,"GET

 
/

 
HTTP

 
/

 
1.0\n\n")

 
;

 
while(!feof($fp)

 
)

 
{

 
echo

 
fgets($fp,128)

 
;

 
    }

 
fclose($fp)

 
;

 
}



Ver también: pfsockopen()