Accueil   |   Forums   |  Offres d'emplois   |  Contact    |   Mon compte   
jeudi 28 août 2008 Rechercher :
Déposez votre CV gratuitement sur touslesemplois
 
comparer les prix
» Logiciels
» Jeux vidéos
» Matériel Informatique


» ASP.NET
» ASP
» SQL
» PHP
» JAVASCRIPT
» XML
 


» ACTUALITÉ / DIVERS
» DROIT DE L'INTERNET
» INFOS VIRUS
» PATCHS MICROSOFT
» SÉCURITÉ
» BASES DE DONNÉES
» DOWNLOAD .NET
» LOGITHÈQUE
» SERVICES WEB
» Y SONT FOUS !
» .NET
» ASP
» ASP.NET
» JAVA
» PHP
» XML
» LANGAGE C#
» LANGAGE VB.NET
» UNIX / LINUX
» WINDOWS
» EVÈNEMENTS
» GASP
» MICROSOFT
 



Vous êtes ici : Articles PHP > NOTES DE COURS

La fonction fsockopen
La fonction fsockopen permet d'ouvrir des sockets sur des serveurs distants. Autrement dit elle permet d'envoyer et de recevoir des informations sur des serveurs distants.


ABONNEZ-VOUS GRATUITEMENT A LA REVUE DE PRESSE "LES Z'ACTUS" ET RECEVEZ CHAQUE JOUR DANS VOTRE BOITE AUX LETTRES LA MEILLEURE INFORMATION DEDIEE AUX WEBMASTERS / DEVELOPPEURS.

Indiquez votre adresse E-mail :

Technologie : PHP 
Date : 29/05/2006   
Auteur : ASP MAGAZINE

Déclaration

int fsockopen (string [udp://]hostname, int port [, int errno [, string errstr [, double timeout]]])

  • hostname : adresse du serveur distant
  • port : Port distant du serveur à l'écoute
  • errno : numéro d'erreur renvoyée
  • errstr : description de l'erreur renvoyée
  • timeout : Temps maximal en seconde pendant lequel la fonction essaiera de se connecter.

Exemple d'utilisation HTTP : Tester l'exemple

Récupérer le contenu HTML d'une page distante. Pour cela on créé un petit formulaire avec un champ dont le nom sera urlbase.

- Le formulaire HTML (test_socket.htm) :

<form method="post" action="test_socket.php">
<input type="text" name="urlbase" value="www.asp-magazine.com">
</form>

- Le code php de traitement (test_socket.php) :

<?
// On teste si la variable urlbase existe
if (isset($urlbase)) {

$sock = fsockopen ($urlbase, 80, &$errno, &$errstr, 30);

if (!$sock) {

// Il y a eu une erreur
echo "Une erreur s'est produite<br>\n";
echo "Numéro d'erreur : $errno<br>\n";
echo "Description :  $errstr<br>\n";

} else {

// Envoi au serveur : on souhaite une réponse HTTP
fputs ($sock, "GET / HTTP/1.0\r\n\r\n");

//Lecture de la réponse du serveur
while (!feof($sock)) {
echo fgets ($sock,128);
}

// fermeture du socket
fclose ($sock);
}
}
else {

// la variable urlbase n'existe pas
// On redirige l'utilisateur vers la page formulaire
Header("Location: test_socket.htm");
}
?>

Exemple d'utilisation avec le protocole UDP

Le protocole UDP est au même titre que TCP un protocole de transport des données. Mais contrairement à ce dernier il assure une transmission dîte "en mode non connecté et non fiable". Ceci signifie simplement, que le client et le serveur n'établissent entre eux aucune connexion, mais aussi que le client peut poster des messages au serveur, sans jamais savoir si le serveur les reçoit : à moins que la réponse du serveur ne se fasse dans un laps de temps (timeout) défini sur le client. Si le client reçoit dans ce laps de temps une réponse du serveur, alors il peut être sûr que le serveur à reçu son message au moins une fois. Un programme communiquant avec UDP, peut donc être à la fois le client et le serveur.

Utilisation de fsockopen avec UDP

<?php
// Initialisation de l'appel (host, port , etc...)
$sockudp = fsockopen("udp://127.0.0.1", 4556, &$errno, &$errstr);

if (!$sockudp) { // Il y a eu une erreur
echo "Une erreur s'est produite<br>\n";
echo "Numéro d'erreur : $errno<br>\n";
echo "Description : $errstr<br>\n";
} else { // envoi d'un message au serveur UDP
fwrite($sockudp,"Bonjour je suis un client UDP\n");

// Attente d'une réponse du serveur
echo fread($sockudp, 26);

// fermeture du socket
fclose($sockudp); }

?>



Proregna - L'hébergement ASP.NET


A RETENIR CETTE SEMAINE
16/07/2008 - Windows Server 2008 : Network Access Protection
Le nouveau système d’exploitation serveur de Microsoft, Windows Server 2008, apporte avec lui de nou ...
16/07/2008 - Webcasts - Développement parallèle, à l'aube d'une nouvelle ère
Avec l'avénement des multi-coeurs, le développement parallèle devient une necéssité. Dans cette séri ...
16/07/2008 - J'en ai rien à coder - Votre devoir de vacances sur Silverlight !
Qu'est-ce que Silverlight ? Une nouvelle technologie Web permettant d'exécuter des RIA sur un large ...
16/07/2008 - Quelques petits tests sur les bases embarquées
Dans ce billet, Ayende réalise un benchmarking de plusieurs "petites" bases de données embarquées. S ...
15/07/2008 - Présentation d'ASP.NET Dynamic Data
Dynamic Data est une nouvelle technologie inclue dans l' "Asp.net 3.5 Extension CTP ". Elle fournit ...
15/07/2008 - Silverlight 2 - Les webcasts de l'événement sont en ligne
L’objectif de cette journée était de comprendre les limitations de Silverlight 1, et d’appréhender l ...
15/07/2008 - Cache transparent et Entity Framework
La gestion du cache (1er et second niveau) est une fonctionnalité très importante d'un outil de mapp ...
(c) 1999-2006 ASP MAGAZINE SARL
Partenaires : Codes sources c2i ASP-PHP
Hébergement serveurs dédiés Windows


Hit-Parade