Sockets .Net

shadow1779 Messages postés 706 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2013 - 23 nov. 2006 à 18:26
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 - 24 nov. 2006 à 09:52
Bonsoir,

je cherche a me faire un petit telnet afin de commencer avec le réseau en .Net, j'arrive bien a connecter mon socket a un server (un ftp ici ^^), je n'utilise pas encore les sockets asynchrones mais un thread pour la réception , j'ai cependant un problème quand au retour des informations, en effets celle ci retour dans ma textbox sous forme de symboles bizarres et non de "phrases" compréhensives, j'aimerai un peu d'aide ^^

private
Socket sock;

private
byte[] sockreader =
new
byte[1024];

private
byte[] socksender =
new
byte[1024];

private
string buffer;

private
int count;

// le thread en question
private

void sockListen()
{

while (sock.Connected)
{

if ((count = sock.Receive(sockreader, 0, 1024,
SocketFlags.None)) > 0)
{
buffer = System.Text.
Encoding.Unicode.GetString(sockreader, 0, count);
Dialogue.Text = buffer;
count = 0;
}
}

}

1 réponse

leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
24 nov. 2006 à 09:52
si tu recois des trucs bizzare cest parce que tu utilise encoding.unicode a piori.
utilise Encoding.GetEncoding("iso-8859-1") (pour utiliser isolatin, soit le jeu de cartactères ascii étendu) soit Encoding.GetEncoding(0) (pour utiliser le codage de la machine, ce qui veux dire que si tu es sur un systeme installé en anglais tu recevra des caractères bizzares au lieu de tes caractères étendus)...

si tes caractères sont bizzares, cest parce que ton serveur encode tes caractères sur un octet, et toi tu considère qu'ils sont codés sur 2 (grosso modo)...forcément ca peut pas marcher, tu dois décoder de la meme manière que ce que cest encodé
0
Rejoignez-nous