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 :

Memorystream to byte[]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 100
    Par défaut Memorystream to byte[]
    Bonjour,

    Voila je ne trouve pas comment il faut faire pour convertir un memorystream en bytes. J'en ai besoin pour faire passer un objet sérialisé dans une socket.

    Voici un morceau de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MemoryStream memEnvoi = new MemoryStream();
    BinaryFormatter formatterEnvoi = new BinaryFormatter();
    formatterEnvoi.Serialize(memStream, maRequete);
    Ici je sérialise mon objet "maRequete", et je voudrais le faire passer dans ma socket mais il faut que je le convertisse en byte. Comment est-ce que je peux faire ?

    Merci d'avance,

    Julien

  2. #2
    Membre éclairé
    Inscrit en
    Mai 2010
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 72
    Par défaut
    Bonjour asnaeb,

    JE ne sais pas si c'est exactement ce que tu recherche, mais la méthode GetBuffer() d'un MemoryStream retourne le tableau de byte représentant ce flux.

    Bonne journée

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 100
    Par défaut
    Bonjour supermouton

    Merci pour ta réponse, je suppose que c'est ce que je recherche vu que j'ai besoin d'un d'un tableau de byte Je vais essayer cette méthode et je te dis quoi

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par supermouton Voir le message
    JE ne sais pas si c'est exactement ce que tu recherche, mais la méthode GetBuffer() d'un MemoryStream retourne le tableau de byte représentant ce flux.
    Attention, ce n'est pas GetBuffer() mais ToArray() qu'il faut utiliser !
    GetBuffer() renvoie le buffer tel quel, y compris l'espace réservé par le MemoryStream mais pas utilisé

    Sinon, il y a plus simple : plutôt que de sérialiser dans un MemoryStream et de transmettre les bytes, tu peux sérialiser directement sur un NetworkStream sur la Socket :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Stream socketStream = new NetworkStream(socket);
    BinaryFormatter formatterEnvoi = new BinaryFormatter();
    formatterEnvoi.Serialize(socketStream, maRequete);

  5. #5
    Membre éclairé
    Inscrit en
    Mai 2010
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 72
    Par défaut
    D'accord, merci TomLev pour cette précision. on en apprend tous les jours

    Bonne après midi

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 100
    Par défaut
    Bonjour tomlev,

    pour ta deuxième méthode, comment est-ce que j'envoie mes données alors ?

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par asnaeb Voir le message
    pour ta deuxième méthode, comment est-ce que j'envoie mes données alors ?
    Le code que je t'ai donné le fait déjà... Le BinaryFormatter sérialise directement sur le flux de la Socket

  8. #8
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 100
    Par défaut
    Ah bon J'ai même pas besoin d'appeler la méthode beginSend alors Je vais tester ça de suite.

    Je ne comprend pas vraiment comment je dois faire pour récupérer mon objet de l'autre coté, je dois aussi créer un flux networkstream, mais je ne vois pas vraiment comment implémenter

Discussions similaires

  1. [Socket][File] Envoyer un tableau de byte
    Par itsmii dans le forum Entrée/Sortie
    Réponses: 14
    Dernier message: 30/01/2014, 09h10
  2. [VB6]ecrire une chaine de byte dans la base de registre
    Par tomnie dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 17/12/2008, 10h50
  3. [C#] Conversion d'un byte[] en byte *
    Par karsh dans le forum Windows Forms
    Réponses: 6
    Dernier message: 08/12/2004, 10h53
  4. opérations sur les bits d'un byte
    Par petitours dans le forum C++Builder
    Réponses: 4
    Dernier message: 10/02/2004, 20h42
  5. transtyper ^dword en ^byte ?
    Par - Robby - dans le forum Langage
    Réponses: 3
    Dernier message: 28/10/2003, 00h58

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