Accueil   |   Forums   |  Offres d'emplois   |  Contact    |   Mon compte   
vendredi 30 juillet 2010 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); }

?>



Project Hoshimi


A RETENIR CETTE SEMAINE
29/07/2010 - Première Preview d'ASP.Net MVC3
Microsoft vient d'annoncer, via le vice-président de sa division de développement Scott Guthrie, la ...
29/07/2010 - Challenge Windows Phone 7 - La quatrième épreuve est disponible !
Nos amis du site Developpez.com ont mis en ligne la 4ème étape du Challenge Windows Phone 7. Il n'es ...
29/07/2010 - Difficile de faire plus facile !
Avec la plateforme web Microsoft, vos projets gagnent à tous les coups. 5 000 serveurs gratuits tout ...
29/07/2010 - J'en ai rien à coder 2010 - Le chapitre Visual Studio 2010 est en ligne !
Cet été formez-vous grâce au quatrième chapitre Visual Studio 2010 de la saga de l'été MSDN "J'en ai ...
26/07/2010 - Promotion SPECIALE Expression Web 3 !
Du 1er Juillet 2010 au 30 Septembre 2010, profitez d’une remise exceptionnelle auprès de notre reven ...
26/07/2010 - Testez vos connaissances avec le quiz .NET Framework
Le mini-quiz autour de la plateforme .NET Framework est enfin disponible ! Testez vite vos connaissa ...
26/07/2010 - Tentez de gagner Kinect en participant au premier jeu-concours de l'été !
L’été vient tout juste de commencer, et il s’annonce déjà riche comme jamais en cadeaux ! Participez ...
(c) 1999-2006 ASP MAGAZINE SARL
Partenaires : Codes sources c2i ASP-PHP
Hébergement serveurs dédiés Windows


Hit-Parade