2010-11-11 5 views
1

J'ai écrit de petites applications client et serveur tcp socket. Le serveur envoie un message texte au client.Caractères étranges dans la zone de texte après la réception via socket

Une partie du code des serveurs:

new_sock.Send(Encoding.UTF8.GetBytes("efgh")); 

Une partie du code clients:

byte[] buffer = new byte[100]; 

int count = sock.Receive(buffer); 
sock.Close(); 
textBox_received.Text = Encoding.UTF8.GetString(buffer); 

Dans les fenêtres forme tout d'application est OK mais dans l'application WPF texte après réception apparaît toujours "boîtes": alt text

Quelle est la raison et que puis-je faire pour l'éviter?

Répondre

3

Vous obtenez la chaîne à partir du tampon entier de 100 octets, alors que vous en avez seulement reçu quelques-uns. Vous devriez seulement faire Encoding.GetString sur les octets que vous avez réellement reçus:

textBox_received.Text = Encoding.UTF8.GetString(buffer,0,count); 
+0

Merci! Ça marche :) – mmatloka

Questions connexes