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 :

tableau de bytes dynamique


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 144
    Par défaut tableau de bytes dynamique
    Bonjour à tous,

    Je dois me connecter a un serveur afin de récupérer des bytes ,qui après transformation, doit être du xml

    le problème est que je peux tres bien avoir une ligne ou 10000

    La fonction socket.Receive() demande un tableau de bytes. La taille du tableau doit être prédéfini. Comment remédier au buffer pas assez grand?

    merci

  2. #2
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 33
    Par défaut
    ya pas un truc qui fait

    socket.Receive().size/lenght

    et donc du coup tu construit ton tableau de "réception" avec cette taille?

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 144
    Par défaut
    je ne trouve car le prototype de la methode est
    Socket.Receive(byte[] buffer)

    donc les data sont deja ecrites dans le buffer

    Merci quand meme

  4. #4
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Tu peux écrire les données reçues dans un MemoryStream, et à la fin tu appelles la méthode ToArray() du MemoryStream pour avoir ton tableau d'octets.

    En gros quelque chose de cet acabit
    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
    byte[] receivedData = null;
     
    using(MemoryStream ms = new MemoryStream())
    {
        // Buffer de réception
        byte[] buffer = new byte[4096];
        // Réception des données
        int bytesReceived;
        while((bytesReceived = socket.Receive(buffer)) != 0)
        {
            // Ecriture dans le MemoryStream
            ms.Write(buffer, 0, bytesReceived);
        }
        receivedData = ms.ToArray();
    }

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. tableau Byte[] dynamique
    Par bubulemaster dans le forum Débuter
    Réponses: 4
    Dernier message: 30/05/2008, 16h16
  3. [Reflection] Créer un tableau d'objets dynamiquement.
    Par salome dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 25/03/2005, 18h59
  4. [C#] Convertir un tableau de byte en Image
    Par goulhasch dans le forum ASP.NET
    Réponses: 4
    Dernier message: 24/01/2005, 10h12
  5. Réponses: 23
    Dernier message: 21/08/2003, 07h16

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