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 :

Problème affichage Byte[] en String [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Apprentissage de programmation
    Inscrit en
    Janvier 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprentissage de programmation

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4
    Par défaut Problème affichage Byte[] en String
    Bonjour à tous !
    Je suis en train de développer un petit serveur/client TCP en C#.
    Jusque là tout allais bien, mais j’ai voulu convertir une byte array (byte[]) en string envoyée par le client que j’ai reçu sur mon socket pour pouvoir l'afficher dans une textBox.

    Mais le problème qui se pose est que lorsque mon byte[] à été convertit en string, il contenait 100 bytes; (et mon message bien moins) donc lorsque j'affiche ma string cela m'affiche aussi les bytes non-utiliser à la fin de la chaine.

    Quelque possèderais-t-il la solution et si oui voudrais-t-il bien ma la délivrée!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Socket s = myList.AcceptSocket();
    byte[] b = new byte[100];
    s.Receive(b);
    string str = Encoding.UTF8.GetString(b, 0, b.Length);

  2. #2
    Membre Expert Avatar de meziantou
    Homme Profil pro
    autre
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Par défaut
    s.Receive renvoie le nombre de byte reçus. Il faut donc utiliser son résultat au lieu de b.Length dans ta dernière ligne

  3. #3
    Membre à l'essai
    Homme Profil pro
    Apprentissage de programmation
    Inscrit en
    Janvier 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprentissage de programmation

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4
    Par défaut
    D'accord ! Merci , mais comment retourner la valeur de s ?

  4. #4
    Membre Expert Avatar de meziantou
    Homme Profil pro
    autre
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Socket s = myList.AcceptSocket();
    byte[] b = new byte[100];
    int length = s.Receive(b);
    string str = Encoding.UTF8.GetString(b, 0, length);
    Documentation de la méthode Receive : http://msdn.microsoft.com/fr-fr/library/8s4y8aff.aspx

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    le tcp/ip en direct doit se traiter un peu mieux que ca
    un envoi peut etre découpé en plusieurs parties, il faut donc que celui qui réceptionne reconstruise tout, pour ca il doit savoir comment le faire, c'est à toi de trouver une norme de dialogue tel un caractère de fin ou la taille du message en entete
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre à l'essai
    Homme Profil pro
    Apprentissage de programmation
    Inscrit en
    Janvier 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprentissage de programmation

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4
    Par défaut
    D'accord
    Merci beaucoup cela m'a bien aidé, je m'en suis sortit !

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

Discussions similaires

  1. Problème avec la classe String (conversion en byte)
    Par PocoYote dans le forum Langage
    Réponses: 12
    Dernier message: 12/08/2010, 16h59
  2. Problème de parse de String vers Byte
    Par Johan.Mazel dans le forum Java ME
    Réponses: 5
    Dernier message: 25/07/2007, 12h56
  3. [TFileStream] Problème de lecture de string
    Par Pedro dans le forum Langage
    Réponses: 6
    Dernier message: 28/06/2004, 13h06
  4. [DOS] Problème affichage de DOS dans un Memo
    Par Pedro dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 25/06/2004, 13h31

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