C#: byte[ ] string et sockets .... [Résolu/Fermé]

Signaler
Messages postés
18237
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
-
Nabla's
Messages postés
18237
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
-
Bonjour à tous,

D'habitude je fais plutôt du C++, et là j'ai eu l'envie de me mettre au C# , pour faire un programme de type serveur...

le serveur recoit via la socket une chaine de caractères de forme: login pseudo mot_de_passe

un petit bout de code pour illustrer:
                    Byte buffer_ = new Byte[100];
                    int size = CurrentClient.Receive(buffer_);  
                    buffer_[size] = (byte)'\0';  
                    string buff = buffer_.ToString();  
                    Console.WriteLine(buff);  

                    Liste_contacts.Ajouter(buff, cont);  


donc je recois mes données dans un tableau de bytes, mais alors pour faire passer ca dans un string .... je bute... comme ca le code m'affiche System.Byte[]...

je suis sur que la solution est pas bien compliquée, mais je sèche un peu là ...
de plus, j'ai l'impression qu'en C# le type char est sur 2 octets (unicode)...

3 réponses

Messages postés
18237
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
2829
et bien, merci Nico#, cette fonction a bien marché ...
juste, j'ai utilisé une surcharge différente car il me créait un string de la taille de mon buffer (1000) ....

j'ai donc ce code ci:
   int size = CurrentClient.Receive(buffer_); 
   string buff = System.Text.Encoding.ASCII.GetString(buffer_,0,size); 
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 79850 internautes nous ont dit merci ce mois-ci

Messages postés
331
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
28 août 2013
97
Salut

C'est normal que tu reçoive System.Byte[] car la methode ToString() se réfere a l'Object il faut que tu utilise la methode GetString();
System.Text.Encoding.ASCII.GetString(TonByte);
Messages postés
18237
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
2829
Salut !
ha, je savais bien qu'il y avait une méthode qui se cachait derrière les fagots ;)

j'ai pas le temps de tester ce soir (mode grododo), je testerai ca d'ici la fin du week end et te tiendrais au jus.
en tout cas, merci de m'avoir apporté cette fonction qui a l'air très prometteuse...
va falloir que j'aille bouquinner la doc des librairies de base du C# moi ...

ciao