C#: byte[ ] string et sockets ....
Résolu
Nabla's
Messages postés
18203
Date d'inscription
Statut
Contributeur
Dernière intervention
-
Nabla's Messages postés 18203 Date d'inscription Statut Contributeur Dernière intervention -
Nabla's Messages postés 18203 Date d'inscription Statut Contributeur Dernière intervention -
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:
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)...
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
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:
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);
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();
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);
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
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