Espace membres

Bonjour Anonyme

Inscription

Email :
Mot de passe :

Mot de passe oublié ?

Nos scripts

MySpeach

MySpeach est un chat php sans base de donnée, rapide, léger et facile à prendre en main. DEMO

MyPHPUpload

MyPHPUpload est un script d'upload sécurisé écrit en PHP. DEMO

GrapAgenda

Agenda PHP et MySQL avec comptes utilisateurs et administration. DEMO

Livre PHP

création de site

Sockets php avec fsockopen

Cours / tutoriel écrit le 17-06-2010 par sky
Utilisation des sockets en PHP

Utilisation des sockets php

Voici un exemple d'utilisation des sockets en php.
Dans cette exemple, on ce connecte au site viaphp.net, et on récupere une page.

fsockopen() retourne un pointeur de fichier qui peut être utilisé avec d'autres fonctions fichiers, telles 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 dû à une erreur d'initialisation de la socket.
Notez que errno et errstr sont toujours passées par référence.

<?php
// Exemple de récupération d'un document via HTTP
// en utilisant directement les sockets.

$serveur = "www.viaphp.net";
$document = "/demo/codes/socket_test.php";

$socket = fsockopen($serveur, 80, $codeErreur, $msgErreur);

if (!$socket)
{
    echo "La connexion via la socket a échouée.<br />";
    echo "Code d'erreur: $codeErreur<br />";
    echo "Message d'erreur: $msgErreur<br />";
    exit();
}

// Envoi de données au serveur
fputs($socket, "GET $document HTTP/1.1\r\n");
fputs($socket, "Host: $serveur\r\n");
fputs($socket, "\r\n");// Marque la fin des entêtes

// Lecture de la réponse et affichage du code source
while (!feof($socket))
{
    $donnees = fgets($socket, 512);

    echo htmlentities($donnees, ENT_QUOTES).'<br />';
}
?>

Commentaires

Aucun commentaire. Soyez le premier !

Pseudo
Email
Commentaire

Merci d'écrire le code ici :