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

PHP & Base de données Discussion :

lire le contenu d'un port TCP [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 231
    Points : 73
    Points
    73
    Par défaut lire le contenu d'un port TCP
    bonjour,

    je veux lire le contenu d'un port TCP (il y a des données qui arrivent) mais je ne sais pas comment faire.

    J'ai essayé avec ce code mais cela ne marche pas, est-ce que quelqu'un pourrait m'aider ,

    merci beaucoup.

    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
    19
    20
    21
    22
     
     
    <?php
    $fp = fopen("http://127.0.0.1/",2323, &$errno, &$errstr);
    if(!$fp)echo "$errstr ($errno)<br>\n";
    else
    {
    	$compteur=0;
    	$point=false;
    	$status="";
    	$fix=0;
    	while (!$point)
    	 {
    		set_file_buffer($fp,10);
    		$string=@fgets($fp, 4096);
            echo "<pre>texte:".$string."</pre>"
    		$compteur++;
    		if ($compteur==500)$point=true;
          }//fin while
    fclose($fp);
    }
    ?>

  2. #2
    FFF
    FFF est déconnecté
    Membre actif Avatar de FFF
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 342
    Points : 282
    Points
    282
    Par défaut
    fopen () sert à ouvrir un fichier sur un serveur en utilisant des protocoles précis. Si le protocole d'ouverture du fichier n'est pas connu fopen()=false.
    Tu as réellement un serveur web local ?

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 231
    Points : 73
    Points
    73
    Par défaut
    oui, Apache

  4. #4
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut
    Avec fsockopen() plutot non ?

  5. #5
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    Citation Envoyé par genova
    Avec fsockopen() plutot non ?
    +1 ;-)

  6. #6
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 231
    Points : 73
    Points
    73
    Par défaut
    même avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fsockopen("127.0.0.1",2323, &$errno,&&errstr)
    je n'arrive pas à récuperer les données alors qu'en ouvrant 127.0.0.1:2323 sur Internet Explorer, j'arrive bien à voir les données

  7. #7
    FFF
    FFF est déconnecté
    Membre actif Avatar de FFF
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 342
    Points : 282
    Points
    282
    Par défaut
    Tu peux essayer ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?
    //lit les 10000octects dur un socket
    $buffer=fread(stream_socket_client("tcp://localhost:2323"),10000);
    echo $buffer;
    ?>
    Il t'affiche koi IE lorsque ça marche ?

  8. #8
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    je n'arrive pas à récuperer les données alors qu'en ouvrant 127.0.0.1:2323 sur Internet Explorer, j'arrive bien à voir les données
    Apparemment, donc, c'est un serveur HTTP.

    Donc file_get_contents('http://127.0.0.1:2323'); tout simplement.

  9. #9
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 231
    Points : 73
    Points
    73
    Par défaut
    en realité,
    les données sont là mais je n'arrive pas à les afficher,

    mais lorsque je fais une insertion dans une base alors les données sont bien insérées.

    voici le code qui marche pour insérer les données et c'est tout ce que je voulais. Par contre pour afficher les données quand ce n'est pas encore la fin du fichier, c'est un autre problème


    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    /****
    Andry 03 10-2005
    ceci est une application php servant à recevoir les trames NMEA venant d'un gps vers le port TCP/IP et à inserer 
    quelques données vers une base de données mysql
    le test est fait pour les trames NMEA en format GPRMC et GPGGA
    ****/
    $connexion = mysql_connect("localhost","root","");
    mysql_select_db("testnmea");
    $fp = fsockopen("192.168.10.10",2323,&$errno, &$errstr);
    if(!$fp) echo "lecture echouée";
    else
      {
       while (!feof($fp))
          {
    	  $chaine = fgets($fp, 4096);
    	  switch (substr($chaine,0,6)) 
    		  {
    			case "\$GPRMC" :
    				$tableau = explode(",",$chaine);
    				$jour = date("dmy");
    				$temps = substr($tableau[1],0,4);
    				$lat = explode(".",$tableau[3]);
    				$lat[1] = ($lat[1]/100000) * 60;
    				$lat[1] = round($lat[1],1);
    				$latitude = $lat[0]*100;
    				$latitude = $latitude + $lat[1];
    				$long = explode(".",$tableau[5]);
    				$long[1]  = ($long[1]/100000)*60;
    				$long[1]  = round($long[1], 1);
    				$longitude = $long[0]*100;
    				$longitude = $longitude + $long[1];
    				$sql = "insert into position (time, longitude, latitude, jour) VALUES (\"$temps\", \"$longitude\",\"$latitude\",\"$jour\")";
    				$query = mysql_query($sql, $connexion);
    				break;
    			case "\$GPGGA" :					
    				$jour = date("dmy");
    				$tableau = explode(",",$chaine);
    				$temps = substr($tableau[1],0,4);
    				$lat = explode(".",$tableau[2]);
    				$lat[1] = ($lat[1]/100000) * 60;
    				$lat[1] = round($lat[1],1);
    				$latitude = $lat[0]*100;
    				$latitude = $latitude + $lat[1];
    				$long = explode(".",$tableau[4]);
    				$long[1]  = ($long[1]/100000)*60;
    				$long[1]  = round($long[1], 1);
    				$longitude = $long[0]*100;
    				$longitude = $longitude + $long[1];
    				$sql = "insert into position (time, longitude, latitude, jour) VALUES (\"$temps\", \"$longitude\",\"$latitude\",\"$jour\")";
    				$query = mysql_query($sql, $connexion);
    				break;
    			default :
    			    echo substr($chaine,0,6);
    			    break;
    		   }
    	  echo $chaine;
    	  }
       //echo $chaine;
       fclose($fp);
      }
    merci beaucoup à tous

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

Discussions similaires

  1. Problème en essayant de lire le contenu d'un .lnk
    Par ybruant dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 22/11/2018, 10h16
  2. redirection RS232 : lire un port TCP
    Par ivi610 dans le forum Serveurs (Apache, IIS,...)
    Réponses: 1
    Dernier message: 20/09/2008, 21h11
  3. [Mail] Lire le contenu d'un mail
    Par hdd dans le forum Langage
    Réponses: 5
    Dernier message: 31/10/2004, 14h30
  4. [Fichier] Lire le contenu d'un fichier
    Par bart64 dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 19/09/2004, 19h18
  5. [VB.NET] Impossible de lire le contenu du datagrid
    Par jagdjg dans le forum ASP.NET
    Réponses: 2
    Dernier message: 05/05/2004, 22h51

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