2010-09-08 9 views
0

J'ai écrit un serveur TCP. Ensuite, j'essaie de me connecter à mon serveur utilisé Telnet (telnet localhost 2200). Problème: telnet écrit du mauvais texte - comme ceci: ? ????? ...Problème avec le propriétaire de TCPServer

static void Main(string[] args) 
    { 
     ASCIIEncoding encoding = new ASCIIEncoding(); 
     //UnicodeEncoding encoding = new UnicodeEncoding(); 
     Byte[] message = encoding.GetBytes("Я занят..."); 

     try 
     { 
      IPAddress localAddress = IPAddress.Parse("127.0.0.1"); 
      TcpListener listener = new TcpListener(localAddress,2200); 

      listener.Start(1); 

      while (true) 
      { 
       Console.WriteLine("Сервер ожидает {0}", listener.LocalEndpoint); 
       TcpClient client = listener.AcceptTcpClient(); 

       NetworkStream io = client.GetStream(); 
       Console.WriteLine("Принято соединение от {0}", client.Client.RemoteEndPoint); 

       Console.WriteLine("Отправляем сообщение..."); 
       io.Write(message,0,message.Length); 

       Console.WriteLine("Закрытие соединения"); 
       client.Close(); 
      } 
     } 
     catch (Exception e) 
     { 
      Console.WriteLine("Произошла ошибка {0}", e.Message); 
     } 
    } 

Le texte russe texte language.If sur l'anglais puis sur OK. Quel est le problème, peut-être codepage? Merci et désolé pour mon mauvais anglais.

Répondre

2

ASCIIEncoding ne fonctionnera pas avec le russe. Utilisez UTF8Encoding ou UTF32Encoding (je ne suis pas sûr de celui qui fonctionne avec le russe).

+0

J'essaie, pas de travail. – user348173

+0

Quelle est la nouvelle erreur? Mettez à jour le code avec vos modifications. – jgauffin

+0

J'ai changé ASCIIEncoding sur UTF32Encoding, mais le texte est à nouveau mauvais:/♦ 7 ♦ 0 ♦ = ♦ O ♦ B ♦ ... – user348173

0

Peut-être que netcat donne de meilleurs résultats. Il interprète moins les données renvoyées que telnet.