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

C# Discussion :

Conversion Datagram to string


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2015
    Messages : 34
    Points : 32
    Points
    32
    Par défaut Conversion Datagram to string
    Bonjour,

    j'utilise les bibliothèques PcapDotnet pour faire des communication réseaux,

    je récupère donc un Datagram udp que je voudrais convertir en string j'ai vu que pour cela il possible d'utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Encoding.ASCII.GetString()
    mais il attend un byte[] en paramètre moi je possède seulement un UdpDatagram
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
                IpV4Datagram ip = packet.Ethernet.IpV4;
                UdpDatagram udp = ip.Udp;
                // print ip addresses and udp ports
                //Console.WriteLine(ip.Source + ":" + udp.SourcePort + " -> " + ip.Destination + ":" + udp.DestinationPort);
                //string res = Encoding.ASCII.GetString(udp.Payload, 0, udp.Length); // mauvais paramètre 
                Console.WriteLine(udp.Payload);
    comment faire cette conversion ?

  2. #2
    Membre expérimenté
    Avatar de charouel
    Homme Profil pro
    Freelance
    Inscrit en
    Mars 2009
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 618
    Points : 1 454
    Points
    1 454
    Billets dans le blog
    9
    Par défaut
    Tu fait la conversion de byt[] vers string

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    string result = System.Text.Encoding.UTF8.GetString(udp.Payload);

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,

    Payload n'est pas un tableau de Byte donc la conversion directe via GetString() ne fonctionnera pas !
    C'est un type Datagram qui contient les méthodes ToString(), ToMemoryStream() et ToHexadecimalString(). Cela devrait répondre à ton besoin.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2015
    Messages : 34
    Points : 32
    Points
    32
    Par défaut
    parmi les méthodes proposé il me propose juste le ToString

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    La propriété Payload est bien de type PcapDotNet.Packets.Datagram (hérité de DataSegment) ?

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2015
    Messages : 34
    Points : 32
    Points
    32
    Par défaut
    c'est un packet reçut avec PacketCommunicator.ReceivePackets()

    du coup je fait packet.Ethernet.IpV4.Udp.Payload

  7. #7
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Ca ne répond pas à la question.
    du coup je fait packet.Ethernet.IpV4.Udp.Payload
    Payload est bien du type Datagram ?! Dans ce cas, tu dois avoir les méthodes que je t'ai indiquées.

    Montre ton code.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2015
    Messages : 34
    Points : 32
    Points
    32
    Par défaut
    oui il me dit Datagram Udp.PayLoad Pourtant il ne me propose pas les méthode que tu ma donné peut être un problème de Framework je code en 3.5

  9. #9
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Je ne sais pas. J'ai récupéré les sources de PcapDotNet. Il est en Framework 4.
    Peut-être devrais-tu récupérer la dernière version. Mais cela me parait étrange. Tu as les sources ou bien travailles-tu uniquement avec la DLL ?

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2015
    Messages : 34
    Points : 32
    Points
    32
    Par défaut
    je peux pas changer de version, je suis contraint par le framework du serveur .

    Je travail uniquement avec la dll, je devrais aller chercher les sources.

  11. #11
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Bizarre. J'ai récupéré la DLL PcapDotNet.Packets version 0.6.0 (a priori c'est la version pour le framework 3.5). Je l'ai référencé dans un projet et il y a bien une méthode ToMemoryStream().
    En revanche, pas de méthode ToHexadecimalString().
    Quelle est la version de ta DLL ?

Discussions similaires

  1. Conversion d'un string en hexa
    Par marsupilami34 dans le forum Langage
    Réponses: 3
    Dernier message: 07/07/2005, 09h13
  2. Aide de convertion de string
    Par touriste13 dans le forum SL & STL
    Réponses: 11
    Dernier message: 03/03/2005, 14h20
  3. [Débutant] Conversion d'un String en Int
    Par chleuh dans le forum Langage
    Réponses: 9
    Dernier message: 30/12/2004, 13h33
  4. [C#] Conversion d'un string en byte[] et inversement
    Par david71 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 21/12/2004, 15h10
  5. Réponses: 2
    Dernier message: 21/06/2004, 15h55

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