'network'에 해당되는 글 2건

  1. 2010.08.14 C# 네트워크(Network) TCP 클라이언트 만들어보기 by 아르다

2010/08/14 - [C#/Tip] - C# 네트워크(Network) TCP 서버 만들어보기

서버 <-> 클라이언트 통신(TCP)를 한번 작성해봤습니다.

어렵진 않으니 한번 읽어보시면 될거 같네요.

서버부분 글을 보셨다면 아래 클라이언트는 따로 설명 안드려도 될듯한데요.

Socket클래스 생성부분은 동일하고

서버에서 Bind하고 Listen하고 Accept하던 부분을 제거 하고

Connect를 하면됩니다.

 

서버에서는sock.Bind(ipep)라고 해서 로컬 끝점에 연결했었지만,

클라이언트는 sock.Connect(ipep)를 사용해서 원격 끝점에 연결하면 됩니다.

 

아래 코드를 보시면 따로 설명없이도 이해되실꺼라 생각됩니다.

(서버부분 글을 보셨다면!)

 

아 그리고 NetworkStreamStreamWriter, StreamReader에 대해선 설명을 따로 하지 않았습니다.

    class NetworkTest
    {
        private Socket sock;
        private void ServerConnect()
        {
            sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            IPAddress serverIp = IPAddress.Parse("127.0.0.1");
            int serverPort = 9999;
            IPEndPoint ipep = new IPEndPoint(serverIp, serverPort);

            Console.WriteLine("서버에 연결합니다....");
            try
            {
                sock.Connect(ipep);
            }
            catch (SocketException e)
            {
                Console.WriteLine(e.Message);
            }

            for (int i = 0; i < 10; i++)
            {
                string readstr = i + " ==> " + Reader();
                Console.WriteLine(readstr);
            }
        }

        private string Reader()
        {
            NetworkStream stream;
            StreamReader reader;

            try
            {

                stream = new NetworkStream(sock);
                reader = new StreamReader(stream);
                return reader.ReadLine();
            }
            catch (IOException e)
            {
                return e.Message;
            }
        }

        static void Main(string[] args)
        {
            NetworkTest networktest = new NetworkTest();

            networktest.ServerConnect();
            Console.ReadLine();
        }
    }
Posted by 아르다