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.

Categorías: PHPREDES

0 comentarios

Deja una respuesta

Marcador de posición del avatar

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