WCF (Window Communication Foundation)

2023. 4. 28. 16:54·사소한 아이의 소소한 스킬/C#
반응형

기술적인 포스팅을 해보고싶어졌다... 너무 헤이해졌기에............... 안쓴지도 오래되고..........

그리하여 고른 기술은

WCF!!!

본론으로 바로...!!!

 

위키가 말하길 WCF는 

윈도우 커뮤니케이션 파운데이션(Windows Communication Foundation, WCF)은 응용 프로그램을 한 대의 컴퓨터나 네트워크에 연결된 여러 컴퓨터를 걸쳐 통신할 수 있게 만들어 주는 새로운 통신 하부 시스템이다. WCF 응용 프로그램들은 닷넷 런타임을 대상으로 하는 언어를 사용하여 개발할 수 있다.

무슨말인지 이해가 가는가..............

 

난 그냥 모든지 내 방식대로 내 마음대로 이해하는 스타일이라.......

자세히 말은 못하겠지만..!! 

프로세스간 통신하는 방법중 하나인 것으로 기존엔 TCP/IP, UDP 등으로 통신을 하던것을 WCF라는 통신을 통해 프로세스간 통신이 가능하게 해준다는 것.... 즉 단순 통신 프로토콜이다..

 

이론을 잘 알아야하는데..............

바로 실전으로 갑시다.............

 

WCF는 일단 각 프로세스간 통신 방법이므로

2개의 프로세스가 존재해야한다. (TCP/IP처럼 생각한다면 Server S/W, Client S/W 2개)

 

1개의 프로세스는 Host를 맡고, 1개의 프로세는 Client를 맡는다.

 

Host 프로세스는 

1
2
3
4
5
6
7
8
9
10
11
12
 
ServiceHost host = new ServiceHost(typeof(WCFService), new Uri("http://localhost/wcf/")); 
 
// 클라이언트가 접근할 주소
host.AddServiceEndpoint(typeof(IWCFService), new BasicHttpBinding(), "WCFService"); host.Description.Behaviors.Add(new ServiceMetadataBehavior() 
    { 
        HttpGetEnabled = true 
    }
); 
 
// 클라이언트가 접속할 수 있도록 서비스를 열어둔다.
host.Open();
Colored by Color Scripter
cs

 

위와 같이 서비스를 열어둔다.

1번째 줄에서 나타난 WCFService라는 type은 Client가 Service의 함수를 호출할 수 있는 함수, 변수들을 정의한 클래스이이다. 아래와 같이 정의된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ServiceModel;
 
namespace WCF_Helloworld_Service.Services
{
    [ServiceContract]
    interface IWCFService
    {
        [OperationContract]
        string sayHello();
    }
 
    class WCFService : IWCFService
    {
        public string sayHello()
        {
            return "HelloWorld!";
        }
    }
 
}
 
Colored by Color Scripter
cs

 

위 SayHello라는 함수를 Client에서 호출할 수 있도록 할 것이다.

 

uri로 지정한 부분은 localhost가 아닌 service가 열리는 ip를 입력해주어도 된다.

이러면 서비스는 끝...

 

이제 클라이언트 부분!!!

클라이언트의 설정을 위해 일단 서비스프로그램을 관리자모드로 실행합니다!(.exe파일을 실행)

그 후 솔루션을 마우스 우클릭해서 서비스 참조 추가를 누른 후 나오는 창에서

주소란에 http://localhost/wcf/ 입력하고 이동을 누르면 사용할 수 있는 서비스가 자동으로 추가된다. 

그 후 아래와 같이 작성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System; 
using System.Collections.Generic;
using System.Linq;
using System.Text; 
using System.Threading.Tasks; 
using System.ServiceModel; 
using System.ServiceModel.Description; 
using WCF_Helloworld_Client.ServiceReference1; 
 
namespace WCF_Helloworld_Client
{ 
    class Program 
    { 
        static void Main(string[] args) 
        { 
            WCFServiceClient client = new WCFServiceClient(); 
            Console.WriteLine(client.sayHi()); 
        } 
    }
}
Colored by Color Scripter
cs

 

이러면 실행하면 콘솔에 Hello World가 찍힘...........

 

내가 적으면서도...이게 뭘까..........................

그러니 샘플을 올립니다..!!!

샘플을 보시면 이해하기가 더 쉬울겁니다!!!


WCF_Hello.zip
0.09MB

반응형
'사소한 아이의 소소한 스킬/C#' 카테고리의 다른 글
  • C# Excel 사용법.
  • C#에서 초마다 정확하게 수행하는 타이머??!!
  • WPF 버전 WCF 예제파일
  • C# 실행파일 이름 변경하기..!!
JOOJI
JOOJI
그냥 혼자좋아하는 것들 남기는 블로그....
  • JOOJI
    사소한프로그래머의 소소한행복
    JOOJI
  • 전체
    오늘
    어제
    • 분류 전체보기 (951) N
      • 사소한 아이의 소소한 일상 (245)
      • 사소한 아이의 소소한 먹거리 (43)
      • 사소한 아이의 소소한 정보 (75) N
      • 사소한 아이의 소소한 감사 (4)
      • 사소한 아이의 소소한 운동 (53) N
      • 사소한 아이의 소소한 여행 (40)
        • 2013_전주 (1)
        • 2014_독일 (13)
        • 2014_군산 (1)
        • 2015_제주도 (3)
        • 2015_서울모토쇼 (3)
        • 2015_진해 (1)
        • 2015_전주 (1)
        • 2016_여수 (1)
        • 2020_강릉 (1)
        • 2022_제주도 (4)
      • 사소한 아이의 소소한 강짱 (22)
        • 하트투하트 (10)
        • MAPS (1)
        • 화려한 유혹 (2)
        • 한여름의 추억 (2)
      • 사소한 아이의 TV (50)
        • Drama (9)
        • 예능 (32)
        • 사소한 아이의 다현 (9)
      • 사소한 아이의 소소한 스킬 (130)
        • Scaleform (2)
        • C# (74)
        • QT (3)
        • 알고리즘 (4)
        • Python (21)
        • PyQT5 (9)
        • C_C++ (2)
      • 사소한 아이의 소소한 축구 (283)
        • Korea (25)
        • Germany (45)
        • Bayern Munich (64)
        • Soccer_ETC (75)
        • Euro 2016 (12)
        • 친선경기 (3)
      • 사소한 아이의 소소한 생활정보 (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
    • 관리
  • 링크

    • 독일여행
    • 레바티스토리
    • 프라치노 공간
    • 남성패션꿀템 블로그
  • 공지사항

  • 인기 글

  • 태그

    회사밥
    독일
    러닝
    분데스리가
    바이에른 뮌헨
    WPF
    python
    뮌헨
    문제
    c#
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
JOOJI
WCF (Window Communication Foundation)

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.