fsockopen

(PHP 3, PHP 4 )

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()