using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;

namespace EchoClientSampleCode
{
    class Program
    {
        private static string hostname = "ServerAddress";
        private static int port = ServerPort;
        private static TcpClient tc;
        private static NetworkStream ns;
        private static StreamReader sr;
        private static StreamWriter sw;
        private static string input;

        static void Main(string[] args)
        {
            try
            {
                tc = new TcpClient();
                tc.Connect(hostname, port);
            }
            catch (Exception exc)
            {
                Console.WriteLine("Couldn't to connect...");
            }

            ns = tc.GetStream();
            sr = new StreamReader(ns, System.Text.Encoding.Default);
            sw = new StreamWriter(ns, System.Text.Encoding.Default);

            try
            {
                while (tc.Connected)
                {
                    input = Console.ReadLine();
                    if (input == "quit") break;
                    sw.WriteLine(input);
                    sw.Flush();
                    Console.WriteLine(sr.ReadLine());
                }
            }
            catch (Exception exc)
            {
                Console.WriteLine(exc.Message);
            }

            Console.WriteLine("Disconnecting from server...");
            sr.Close();
            sw.Close();
            ns.Close();
            tc.Close();
            Console.WriteLine("Press Enter key.");
            Console.ReadLine();
        }
    }
}
다음과 같이 Stream을 사용하였다면, 한글 문자열은 100% 깨집니다.
…… 생략 ……
reader = new StreamReader(ns);
writer = new StreamWriter(ns);
…… 생략 ……

다음과 Encoding을 설정하여 주면, 한글 문자열이 깨지지 않고 처리됩니다.
…… 생략 ……
reader = new StreamReader(ns, System.Text.Encoding.Default);
writer = new StreamWriter(ns, System.Text.Encoding.Default);
…… 생략 ……

변경하고자 하는 다른 Encode가 있다면 그것으로 설정하여도 됩니다.

+ Recent posts