반응형
공용 라이브러리 (Class 라이브러리로 제작)
using System;
namespace GeneralLib
{
public class General:MarshalByRefObject
{
public string ConverIntToStr(int num)
{
Console.WriteLine("ConvertIntToStr 메소드 수행(전달 받은 인자:{0})", num);
switch(num)
{
case 0: return "영";
case 1: return "일";
case 2: return "이";
default: return "아직 모르는 수예요.";
}
}
}
}
닷넷 리모팅 서버(여기에서는 콘솔 응용으로 제작하였음)
using GeneralLib;
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Http;
namespace 리모팅_서버
{
class Program
{
static void Main(string[] args)
{
HttpChannel hc = new HttpChannel(10400);//TCP :BinaryFormatter, HTTP:SoapFormatter
ChannelServices.RegisterChannel(hc, false);
RemotingConfiguration.RegisterWellKnownServiceType(
typeof(General),
"MyRemote",
WellKnownObjectMode.Singleton);
Console.ReadKey();
}
}
}
닷넷 리모팅 클라이언트
using GeneralLib;
using System;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Http;
namespace 리모팅_클라이언트
{
class Program
{
static void Main(string[] args)
{
HttpChannel hc = new HttpChannel();
ChannelServices.RegisterChannel(hc, false);
General gen = Activator.GetObject(
typeof(General),
"http://[서버의 IP 주소]:10400/MyRemote"
) as General;
string str = gen.ConverIntToStr(2);
Console.WriteLine("호출 결과:{0}", str);
Console.ReadLine();
str = gen.ConverIntToStr(1);
Console.WriteLine("호출 결과:{0}", str);
Console.ReadLine();
str = gen.ConverIntToStr(3);
Console.WriteLine("호출 결과:{0}", str);
Console.ReadLine();
str = gen.ConverIntToStr(0);
Console.WriteLine("호출 결과:{0}", str);
Console.ReadLine();
}
}
}
실행 후 서버 측 결과
ConvertIntToStr 메소드 수행(전달 받은 인자:2)
ConvertIntToStr 메소드 수행(전달 받은 인자:1)
ConvertIntToStr 메소드 수행(전달 받은 인자:3)
ConvertIntToStr 메소드 수행(전달 받은 인자:0)
실행 후 클라이언트 측 결과
호출 결과:이
호출 결과:일
호출 결과:아직 모르는 수예요.
호출 결과:영
반응형
'.NET > 네트워크 프로그래밍 C#' 카테고리의 다른 글
TCP 통신 – Echo 서버 클래스 구현, 이벤트 정의 및 콜백 처리 [C#] (0) | 2020.06.26 |
---|---|
TCP 통신 – echo 서버 및 클라이언트 구현 [C#] (0) | 2020.06.25 |