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

API standards et tierces Android Discussion :

Probleme Socket UDP Char 8 bits


Sujet :

API standards et tierces Android

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 64
    Points : 46
    Points
    46
    Par défaut Probleme Socket UDP Char 8 bits
    Bonjour,

    Je développe actuellement une application permettant l'envoi de données via le smartphone à un serveur.
    La communication se fait via le réseau 3G/Wifi en utilisant le protocole UDP.
    Mon problème est le suivant:

    Supposons que je veux émettre une trame de la forme:
    ((char)0xEE)+"aaa"+((char) 0xFF)
    Sous wireshark je dois obtenir le code hexa suivant ee: 61: 61: 61: ff
    (ce que j'obtiens bien avec une appli javaPC et appli en C)

    Or sous android, lorsque j'essaie d'envoyer une telle type de trame j'obtiens:
    c3:ae:61:61:61:c3:bf et non ce que j'ai au dessus.

    J'ai l'impression que sous android le char 0xEE me donne c3:ae Hexa alors que je veux ee.

    Je ne sais pas où me diriger pour solutionner mon problème donc si quelqu'un peut m'aider ça serait cool.

    Merci à vous

  2. #2
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    essaye plutôt avec byte et non char ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((byte)0xEE)+"aaa"+((byte) 0xFF)
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 64
    Points : 46
    Points
    46
    Par défaut
    Merci pour ton aide, c'était vraiment tout con ^^.

    Mais je me demande pourquoi sur un soft en java avec les Char ça passe ?

    Edit: une autre petit question, est-il possible de codé les accents avec ce système ?

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    heu non, là ca va envoyer "-18aaa-1" soit la séquence
    2D 31 38 61 61 61 2D 31

    Si vous voulez envoyez des bytes sur le tuyau, utilisez des byte[], pas des String ou des char

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    byte[] datas = new byte[] {(byte)0Xee,(byte)0x61,(byte)0x61,(byte)0x61,(byte)0xff}
    Un chaine de caractère, c'est pas du binaire, pour en faire du binaire (pour écrire par exemple dans une fichier), il faut passer par un charset, et suivant le charset, les caractères sont encodés d'une manière ou d'une autre. Par exemple "é" en utf-8 prend deux octets alors qu'en iso-8859-1 il n'en prend qu'un.

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 64
    Points : 46
    Points
    46
    Par défaut
    Merci à vous

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

Discussions similaires

  1. Probleme socket AF_UNIX en UDP
    Par FLYFREE dans le forum Réseau
    Réponses: 3
    Dernier message: 25/04/2014, 09h15
  2. 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
  3. Problemes socket
    Par Proxius dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 27/07/2005, 14h25
  4. Notion sur Socket UDP
    Par oxor3 dans le forum Développement
    Réponses: 3
    Dernier message: 05/04/2004, 00h19
  5. Probleme socket
    Par Spolix dans le forum Réseau
    Réponses: 6
    Dernier message: 03/10/2003, 06h50

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