IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

socket et serveur [PHP 5.0]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 55
    Par défaut socket et serveur
    Bonjour,
    Je tente de faire des sockets en php selon le protocole TCP et j’ai quelques soucis :
    Quand j’exécute le code suivant avec easyPHP tout va bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <?php
    $fp = fsockopen("127.0.0.1", 80, $errno, $errstr, 30);
    if (!$fp) {
        echo "$errstr ($errno)<br />\n";
        echo"errrrrrrreur";
    } else {
        $out = "GET / HTTP/1.1\r\n";
        $out .= "Host: 127.0.0.1\r\n";
        $out .= "Connection: Close\r\n\r\n";
     
        fwrite($fp, $out);
        while (!feof($fp)) {  //Teste la fin du fichier. 
            echo fgets($fp, 128);  //Récupère la ligne courante sur laquelle se trouve le pointeur du fichier. 
        }
        fclose($fp);
    }
    ?>
    J’ai ce résultat :

    HTTP/1.1 200 OK Date: Thu, 08 Jul 2010 12:12:58 GMT Server: Apache/2.2.15 (Win32) PHP/5.3.2 X-Powered-By: PHP/5.3.2 Content-Length: 547 Connection: close Content-Type: text/html; charset=ISO-8859-1 night
    night
    Compte à rebours avant l'ouverture !
    Il reste -146 jour(s), 9 heure(s), 47 minute(s) et 2 seconde(s) !!!!
    Sachant que le résultat du compte à rebours est affiché par index.php.

    J’ai un logiciel de test sur mon ordinateur qui peut me servir de serveur. Il écoute sur 127.0.0.1 et sur le port 4005.
    Donc je change le port (je mets 4005). Je lance mon logiciel de test, je le mets en mode serveur et je lance le script dans easyphp de façon à ce que le PHP soit interprété. Normalement, je m’attendrai juste à ce que mon logiciel me disent qu’il s’est connecter. Mais au lieu de cela j’ai cette erreur :
    [T_TRACE_NET(error) 367.531 07/06/2010 11:22:46 NET _DatagramClient ::connect() Call to connect failed
    367.531 : ce n° change à chaque fois.

    Au début je pensais que j’envoyais de l’UDP à cause du « DatagramClient » alors que je sais qu’il attend une liaison TCP mais d’après ce que j’ai pu voir, je pense maintement que c’est ce que je lui donne.
    Avant cette erreur, il me met : « connect to 127.0.0.1 4006 » qui est le client. Donc est-ce parce que c'est parce que je n’attache pas de n° de port à mon script ?

    Je vous remercie d’avance pour votre aide.

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 373
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 373
    Billets dans le blog
    17
    Par défaut
    [T_TRACE_NET(error) 367.531 07/06/2010 11:22:46 NET _DatagramClient ::connect() Call to connect failed
    Ce msg d'erreur n'a pas l'air d'être retourné par le script PHP ci-dessus.

    J’ai un logiciel de test sur mon ordinateur qui peut me servir de serveur. Il écoute sur 127.0.0.1 et sur le port 4005.
    C'est un serveur HTTP qui écoute le port 4005 et qui attend que tu appelles /index.php ?

  3. #3
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 55
    Par défaut
    Non, c’était un logiciel qui, s’il avait marché comme je le voulais, aurait renvoyé un message positif s’il avait réussi à se connecter (il n’avait aucun moyen de renvoyer une réponse plus élaborée).
    Mais j’ai réussi à faire ma connexion par un autre moyen.
    Je te remercie néanmoins pour ton aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Sockets SSL ( serveur HTTPS )
    Par hexadecime dans le forum Réseau/Web
    Réponses: 4
    Dernier message: 19/10/2007, 18h02
  2. [Sockets] Un serveur en PHP ?
    Par Fildz dans le forum Langage
    Réponses: 7
    Dernier message: 27/08/2006, 13h06
  3. [Socket] Connection serveur POP
    Par LordBob dans le forum Réseau
    Réponses: 15
    Dernier message: 20/03/2006, 01h32
  4. Socket client serveur
    Par rhdjml dans le forum Langage
    Réponses: 2
    Dernier message: 08/03/2006, 12h09
  5. [Socket] un serveur multi thread
    Par mzt.insat dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 12/11/2005, 13h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo