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 :

format de lecture d'un socket udp


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 60
    Points : 38
    Points
    38
    Par défaut format de lecture d'un socket udp
    Salut

    Je veux recuperer des donnees envoyer par un serveur en UDP

    mais ce que je recupere est quasi illisible

    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
    <?php
    /* Ouvre une socket sur le port 1234 de localhost */
    $server = stream_socket_server('udp://192.168.1.106:8024', $errno, $errstr, STREAM_SERVER_BIND);
    echo "connexion ok";
    /* Accepte une connexion */
    //$socket = stream_socket_accept($server);
     
    /* Lit un paquet (1500 est la taille classique MTU) de données OOB */
    echo "Received Out-Of-Band: '" . stream_socket_recvfrom($server, 1500, STREAM_OOB) . "'\n";
     
    /* Lit les données normales in-band, mais ne modifie rien */
    echo "Data: '" . stream_socket_recvfrom($server, 1500, STREAM_PEEK) . "'\n";
     
    /* Relit le même paquet, mais vide le buffer. */
    echo "Data: '" . stream_socket_recvfrom($server, 1500) . "'\n";
     
    /* Terminaison */
    fclose($server);
     
    ?>
    Voilà ce que j'obtiens

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    connexion okReceived Out-Of-Band: ' 11 response in 286 ms �. 3 ), pkey: 0E �= �nco.hd.free.fr �(�g (�(�(�bp.net) �org)
     ������������������������������
     
    Data: '3 response in 471 ms ��. 3 ), pkey: 0E �= �nco.hd.free.fr �(�g (((�bp.net) �org) 
    ������������������������������� Data: '3 response in 471 ms ��. 3 ), pkey: 0E �= �nco.hd.free.fr �(�g (�(�(�bp.net) �org) 
     
    ������������
    Les � (losange avec ? à l'interieur ) n'ont rien à faire la et il remplace des lettres parfois

    le script transcrit en python marche impec

    Mon but est de recuperer le log en continu dans un site web

    Merci de votre aide

  2. #2
    Membre éclairé Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Points : 876
    Points
    876
    Par défaut
    Probablement un problème de charset. Peux tu coller le code python ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 60
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par |PaRa-BoL Voir le message
    Probablement un problème de charset. Peux tu coller le code python ?
    Merci de ton aide

    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
    #! /usr/bin/python
    # -*- coding:Utf-8 -*-
    # Server program
     
    from socket import *
    import sys
    import stringimport os
    import time
     
    buf = 5000
     
    port =int(port,10)
    addr = (host,port)
     
    # Create socket and bind to address
    UDPSock = socket(AF_INET,SOCK_DGRAM)
    UDPSock.bind(addr)
    data,addr = UDPSock.recvfrom(buf)
    on voit bien le charset

    # -*- coding:Utf-8 -*-

    comment puis je traduire cela en php


    en passant comment puis actualiser ce log en continu dans une page php

    genre une fenetre dans la page web avec actualisation automatique et remise à 0 quand le buffer est plein

    Merci de ton aide

  4. #4
    Membre éclairé Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Points : 876
    Points
    876
    Par défaut
    je ne pense pas que tu es à te prendre la tête avec les headers reseau genre MTU, etc..

    Fait simplement un stream_socket_recvfrom($server, 2048); pour voir

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 60
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par |PaRa-BoL Voir le message
    je ne pense pas que tu es à te prendre la tête avec les headers reseau genre MTU, etc..

    Fait simplement un stream_socket_recvfrom($server, 2048); pour voir
    meme probleme

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 60
    Points : 38
    Points
    38
    Par défaut
    en faite g un probleme de buffer qui ne se vide pas

    la premiere phrase est nikel

    puis il reste des traces de l'ancien log

    si la longueur d'une phrase est plus petite on voit la fin de la phrase precedente

  7. #7
    Membre éclairé Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Points : 876
    Points
    876
    Par défaut
    Oui comme indiqué dans la doc :

    http://fr.php.net/stream_socket_recvfrom

    STREAM_PEEK

Discussions similaires

  1. Lecture non-bloquante de socket UDP
    Par asux18 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 01/05/2011, 20h05
  2. [socket UDP] Codage BER : Format des Tag (TLG)
    Par Lolita59 dans le forum Réseau
    Réponses: 28
    Dernier message: 19/05/2006, 17h37
  3. Socket : UDP ou TCP
    Par lafracas dans le forum Développement
    Réponses: 2
    Dernier message: 10/04/2006, 22h43
  4. code c pour sockets (udp vers tcp et inversement)
    Par HiT dans le forum Développement
    Réponses: 11
    Dernier message: 19/11/2005, 18h03
  5. Notion sur Socket UDP
    Par oxor3 dans le forum Développement
    Réponses: 3
    Dernier message: 05/04/2004, 00h19

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