Sommaire
Réseau
checkdnsrr
closelog
debugger_off
debugger_on
define_syslog_variables
fsockopen
gethostbyaddr
gethostbyname
gethostbynamel
getmxrr
getprotobyname
getprotobynumber
getservbyname
getservbyport
ip2long
long2ip
openlog
pfsockopen
socket_get_status
socket_set_blocking
socket_set_timeout
syslog
|
6.64.6 fsockopen[ Exemples avec fsockopen ] PHP 3, PHP 4 >= 4.0.0Description
int fsockopen([string udp://hostname ],int port ,[int errno ],[string errstr ],[float timeout ])
fsockopen crée un flot de connexion à
l'Internet (AF_INET) ou à un domaine Unix (AF_UNIX). Via Internet,
cette fonction va ouvrir une socket de connexion TCP avec l'hôte
hostname sur le port port.
Pour les connexions UDP, vous devez explicitement spécifier le protocole :
udp://hostname.
Via un domaine Unix, hostname représente le
chemin jusqu'à la socket, et port doit
être mis à 0. L'option timeout sert
à donner une durée maximale à cet appel.
fsockopen retourne un pointeur de fichier qui peut
être utilisé avec d'autres fonctions fichiers, telles que
fgets, fgetss,
fputs, fclose et
feof.
Si l'appel échoue, fsockopen retourne FALSE,
et si les options errno et errstr
ont été fournies, elles contiennent désormais les
raisons de l'échec. Si l'erreur retournée est 0 et que la
fonction retourne FALSE, c'est une indication d'erreur. C'est probablement
du à une erreur d'initialisation de la socket. Notez que
errno et errstr sont
passées par référence.
Suivant les environnements, le type 'domaine Unix' ou l'option
timeout ne sont pas toujours disponibles.
La socket sera ouverte par défaut en mode bloquant. Vous pouvez
changer de mode en utilisant : socket_set_blocking.
Exemple avec fsockopen |
<?php $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); } ?>
|
L'exemple ci-dessous décrit comment lire la date et l'heure grâce à
un service UDP "daytime" (port 13), sur votre propre machine.
Utilisation d'une connexion UDP |
<?php $fp = fsockopen("udp://127.0.0.1", 13, &$errno, &$errstr); if (!$fp) { echo "ERREUR: $errno - $errstr<br>\n"; } else { fwrite($fp,"\n"); echo fread($fp, 26); fclose($fp); } ?>
| Note |
Le paramètre timeout
a été introduit en PHP 3.0.9 et le support UDP en PHP 4.
|
Voir aussi
pfsockopen,
socket_set_blocking,
socket_set_timeout,
fgets,
fgetss,
fputs,
fclose et
feof.
|