1.7.2 서버 예광탄 제작

그리고 서버를 구축하기 위해 콘솔 응용 프로그램 형태의 서버 예광탄 프로젝트를 추가하세요. 여기에서는 .NET 리모팅을 소개하는 것을 목적으로 콘솔 응용 프로그램 형태로 제작할게요.

.NET 리모팅 서버를 구축하려면 System.Runtime.Remoting 어셈블리를 참조 추가해야 합니다. 그리고 앞에서 만든 NumToEngLib를 참조 추가하세요.

서버 측에서는 클라이언트에서 연결할 수 있는 채널을 등록합니다. TCP 채널과 HTTP 채널을 사용할 수 있는데 여기에서는 방화벽에 친숙한 HTTP 채널을 생성하여 등록할게요.

HttpChannel hc = new HttpChannel(16000);
ChannelServices.RegisterChannel(hc, false);

그리고 클라이언트에서 원격으로 참조할 수 있는 개체 형식을 등록합니다. 등록할 수 있는 서비스 종류는 여러 가지가 있는데 여기에서는 서버 측 활성화 개체로 단일개체 모드로 등록할게요.

RemotingConfiguration.RegisterWellKnownServiceType(
           typeof(NumToEng),
            "MySvc",
            WellKnownObjectMode.Singleton
            );

프로세스가 키를 누를 때까지 종료하지 않고 대기할 수 있게 합시다.

Console.ReadKey();

▶ Program.cs

using System;
using System.Runtime.Remoting.Channels.Http;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting;
using NumToEngLib;
 
namespace 서버_예광탄
{
    class Program
    {
        static void Main(string[] args)
        {
            HttpChannel hc = new HttpChannel(16000);
            ChannelServices.RegisterChannel(hc, false);
 
            RemotingConfiguration.RegisterWellKnownServiceType(
                typeof(NumToEng),
                "MySvc",
                WellKnownObjectMode.Singleton
                ); 
 
            Console.ReadKey();
        }
    }
}