dns_get_record
gethostbyaddr
Network Functions
PHP Manual

# fsockopen

(PHP 4, PHP 5)

fsockopen — Abrir una conexión de sockets de dominio de Internet o Unix

### Descripción

resource fsockopen ( string `$nombre_host` [, int `$puerto` [, int `&$errno` [, string `&$errstr` [, float `$tiempo_espera` ]]]] )

Inicia una conexión a través de sockets con el recurso especificado por `nombre_host` .

PHP soporta el uso de destinos en los dominios de Internet y Unix, tal y como se describe en Lista de Transportes de Sockets Soportados. Una lista de transportes soportados puede recuperarse usando stream_get_transports().

El socket será abierto por omisión en modo de bloqueo. Es posible cambiar a modo de no-bloqueo usando stream_set_blocking().

### Lista de parámetros

`nombre_host`

  Si ha compilado el soporte para OpenSSL, usted puede usar un prefijo sobre el `nombre_host` , ya sea 'ssl://' o 'tls://' para usar una conexión de cliente SSL o TLS sobre TCP/IP para conectarse con el host remoto.

`puerto`

  El número de puerto.

`errno`

  Si se provee, conserva el número de error de nivel de sistema que haya ocurrido en la llamada de sistema connect().

  Si el valor devuelto en `errno` es 0 y la función devolvió `FALSE`, es un indicio de que el error ocurrió antes de la llamada a connect(). Lo más probable es que esto se deba a un problema con la inicialización del socket.

`errstr`

  El mensaje de error como una cadena.

`tiempo_espera`

  El tiempo de espera de la conexión, en segundos.

  > Note: Si necesita establecer un tiempo de espera para la lectura/escritura de datos a través del socket, use stream_set_timeout(), dado que el parámetro `tiempo_espera` de fsockopen() sólo se aplica cuando se conecta con el socket.

### Valores retornados

fsockopen() devuelve un apuntador de archivo el cual puede ser usado junto con otras funciones de archivos (como fgets(), fgetss(), fwrite(), fclose(), y feof()). Si la llamada falla, devolverá `FALSE`.

### Registro de cambios

Versión | Descripción
--- | ---
4.3.0 | Se agregó el soporte para el parámetro `tiempo_espera` en win32.
4.3.0 | Se agregó el soporte para SSL y TLS sobre TCP/IP.
4.0.0 | Se agregó el soporte UDP.
3.0.9 | Se agregó el parámetro `tiempo_espera` .

### Ejemplos

Example #1 Ejemplo de fsockopen()

`<?php
$da = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$da) {
echo "$errstr ($errno)<br />\n";
} else {
$salida = "GET / HTTP/1.1\r\n";
$salida .= "Host: www.example.com\r\n";
$salida .= "Connection: Close\r\n\r\n";
fwrite($da, $salida);
while (!feof($da)) {
echo fgets($da, 128);
}
fclose($da);
}
?>`

Example #2 Uso de conexión UDP

El ejemplo a continuación presenta la forma de recuperar la fecha y hora desde el servicio UDP "daytime" (puerto 13) en su propia máquina.

`<?php
$da = fsockopen("udp://127.0.0.1", 13, $errno, $errstr);
if (!$da) {
echo "ERROR: $errno - $errstr<br />\n";
} else {
fwrite($da, "\n");
echo fread($da, 26);
fclose($da);
}
?>`

### Notes

> Note: Dependiendo del entorno, el dominio Unix o el tiempo de espera de conexión opcional pueden no estar disponibles.

Warning

En ocasiones, los sockets UDP parecerán haber sido abiertos sin errores, incluso si el host remoto no puede ser contactado. El error sólo se percibirá cuando lea o escriba datos hacia/desde el socket. La razón es que UDP es un protocolo "sin conexión", lo que quiere decir que el sistema operativo no intenta establecer un enlace con el socket hasta que necesite realmente enviar o recibir datos.

> Note: Cuando se especifique una dirección numérica IPv6 (p.ej. fe80::1) se debe incluir la IP entre corchetes. Por ejemplo tcp://[fe80::1]:80.

### Ver también

- pfsockopen() - Abrir una conexión persistente de sockets de Internet o dominio Unix
- stream_set_blocking() - Establecer modo de bloqueo/no-bloqueo sobre una secuencia
- stream_set_timeout() - Establecer el periodo de espera de una secuencia
- fgets() - Obtiene una línea desde el apuntador de archivo
- fgetss() - Obtiene una lína desde el apuntador de archivo y elimina las etiquetas HTML
- fwrite() - Escritura sobre archivos, segura con material binario
- fclose() - Cierra el apuntador a un archivo abierto
- feof() - Verifica si el apuntador a un archivo está al final del archivo
- La extensión Curl

dns_get_record
gethostbyaddr
Network Functions
PHP Manual