앞서 C++/CLI로 만든 클래스 라이브러리를 사용하여 아주 간단한 콘솔 환경의 서버 프로그램을 만들어 보겠습니다.

 

C#에서 Console 프로젝트를 생성합니다.

생성 후 솔루션 탐색기에서 참조에 클래스 라이브러리를 추가합니다.


 

HalfNetworkNET 클래스를 상속 받는 클래스를 생성합니다. 저는 HFServer라는 클래스를 만들었습니다.

그런 후 상속 받은 HalfNetworkNET 클래스의 일부 함수를 재정의 합니다.


 

이제 Main 부분만 남았습니다.

namespace TestServer_HFNetworkNET

{

    class Program

    {

        static void Main(string[] args)

        {

            HFServer Server = new HFServer();

 

            // 서버 초기화 및 설정 후 Port를 연다

Server.Init();

            short nRet = Server.Open();

 

            if (HalfNetwork_NET.ERRORCODE.NONE != nRet)

            {

                Console.WriteLine("Failed Server Open!");

                return;

            }

 

            Console.WriteLine("Server Start !!!");

 

            // 네트웍 처리를 한다.

            while (true)

            {

                Server.Run();

            }

 

            Console.WriteLine("End Server");

 

            // 서버 종료 처리를 한다

            Server.End();

        }

    }

}

 

 

이것으로 아주 간단한 Echo 서버가 만들어졌습니다.

자세한 코드는 첨부된 프로젝트를 보시기 바랍니다.

 

이 프로그램을 실행하면 아래와 같습니다.



프로그램이 올바르게 실행되는지 테스트 하기 위해서는 HalfNetwork 솔루션에 있는 TestClient 프로젝트를 빌드한 후 실행하면 됩니다.

오른쪽이 클라이언트 입니다. 여기서는 10개를 접속 후 0.5초마다 패킷을 보내면 서버(왼쪽)는 받은 데이터를 그대로 보냅니다.


종료하면 종료된 세션을 콘솔에 출력합니다.


닷넷 플랫폼에서 서버 프로그램을 만드는 경우 닷넷 프레임웍에서 제공하는 API를 사용해도 좋지만 기존에 만들어져 편리하고 고성능 라이브러리를 사용하는 것도 아주 괜찮은 선택입니다.

C++로 만들어진 라이브러리를 C++/CLI를 사용하여 필요한 부분만 랩핑하여 클래스를 만들면 닷넷에서 마음껏 사용할 수 있습니다.


 

 

저작자 표시
신고