Redes en PHP

Redes en PHP: Networking en PHP

PHP dispone de varias funciones de networking la más usada y la más flexible es fsockopen que permite conectarse a un socket en un host determinado por una dirección IP y un puerto, mediante esta funcion es posible conectarse a servidores HTPP, FTP, Telnet, IMAP, POP3 y otros protocolos.

Redes en PHP

Es de destacar que la funcionalidad de Networking de PHP es como CLIENTE, PHP no puede crear un socket con nombre y hacer un “listen” de conexiones a dicho port por lo que no puede funcionar como servidor.

La sintaxis de fsockopen es:

file_handler=fsockopen (string_hostname, int port , int errno , string_errstr , double timeout)

Los tres últimos parámetros son opcionales. Hostname es el nombre o dirección IP del host al cual conectarse. Port es el número de puerto al cual conectarse en el host. errno debe ser una referencia a una variable en donde se guarda el número de error en caso de no poder conectarse. errstr es una referencia a una variable en donde se guarda un mensaje de error en caso de no poder conectarse El timeout es el tiempo máximo a esperar por la conexión en segundos.

Devuelve un file handler o false según pueda o no conectarse. El file hanlder devuelto puede luego usarse como un archivo normal usando fgets, fputs, feof, fclose, etc…

Ejemplo:

$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);

}

 

En este ejemplo abrimos el puerto 80 (Protocolo HTTP) de un host (www.php.net ) Luego ponemos en el socket un request de HTTP y entramos en un loop recuperando el contenido que devuelve el server. Es un mini simulador de browser HTTP.

También te podría gustar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *