멀티쓰레드 윈도우즈 소켓 프로그래밍 #2 – 윈도우즈 서비스 프로그래밍 1. 윈도우즈 서비스 프로그래밍 윈도우즈 NT 플랫폼은 서비스라는 프로그램 형태를 지원한다. 이러한 서비스는 시스템 서비스라는 이름으로 불리며 윈도우즈 시스템이 시작하여 종료할 때까지 배후에서 실행되면서 유저 또는 시스템에 특정 서비스를 제공하는 프로그램이다. 이러한 시스템 서비스 프로그램은 운영체제의 일부로서 동작하기 때문에 작성시 큰 주의가 필요하다. 이 장에서는 윈도우즈 시스템 서비스 프로그래밍에 대해 알아보고 간단한 서비스 프로그램을 작성해 보고자 한다. 시스템 서비스 프로그램은 일반적으로 다음과 같은 3개의 export 된 함수를 가지게 된다. 첫번째 함수는 main() 함수로서 일반적인 콘솔 어플리케이션과 동일하다. 즉, 서비스 프로그램은 콘솔 어플리케이션 이기도 하다. Main()는 WinM.. 더보기 멀티쓰레드 윈도우즈 소켓 프로그래밍 #1 흔히 윈도우즈 상에서 소켓 프로그래밍을 한다는 것은 비동기 방식에 의한 윈속 프로그래밍을 의미한다. 비동기 소켓 프로그래밍은 윈도우즈의 기본 디자인 개념에 맞게 유저 프로그램이 소켓을 모니터링 할 필요없이 윈속 모듈의 메시지에 대한 반응만을 한다는 점에서 편리한 면이 있다. 이는 네트웍 소켓을 윈도우즈의 다른 입력/출력 도구로 다룬 다는 점에서 메시지 핸들링이라는 윈도우 스타일의 OS (윈도우즈, Mac OS, X-Window, Motif)의 기본 개념에 충실하다. 그러나 이러한 비동기 통신 방법은 한가지 치명적인 단점이 존재한다. 그것은 바로 위에 장점으로 언급했던 메시지 핸들링으로서 이 메시지 핸들링은 장점이면서도 치명적인 단점이 되는 것이다. 첫째, 메시지 핸들링은 순차적으로 일어난다. 즉, 한 메.. 더보기 비동기소켓 서버구현 그림이 작으니 클릭해서 큰 그림으로 보세요 우리가 만들어 볼 프로그램의 스샷입니다. '서버'와 '클라이언트' 프로그램으로 나뉘어서 따로 구현하게 될겁니다. 이번 장에서는 서버 부분만 알아볼텐데요. 소스는 VC++ 6.0 프로젝트 파일을 압축해서 올렸습니다. 이 글에서는 전체 코드는 다루지 않고 중요한 몇부분만 설명드릴테니 완성코드는 직접 다운받아서 보시고 이해는 여기 글 보면서 하세요. 시작합니다~ 먼저 이 채팅프로그램은 1:1 형식의 프로그램이 아니라 1:다수 형식으로 만들어 졌습니다. 그리고 클라이언트의 데이터는 모두 서버로 전송되게 만들어져 있습니다. 쉽게 말해서 서버가 하나 열려있고 3명의 클라이언트가 그 서버에 접속한 상태라고 가정을 하면 1번 클라이언트가 채팅메시지를 전송할때 직접 2번, 3번.. 더보기 이전 1 ··· 15 16 17 18 19 20 21 ··· 31 다음