반응형

분류 전체보기 2946

4. 스레드를 이용한 멀티플레싱 [TCP/IP 소켓 통신 프로그래밍 with 윈도우즈]

4. 스레드를 이용한 멀티플렉싱 3장에서 만든 TCP 에코 서버는 동시에 하나의 클라이언트에게만 서비스를 제공할 수 있습니다. 하나의 서버가 동시에 여러 클라이언트에게 서비스를 제공하는 것을 멀티플렉싱(Multiplexing)이라 부릅니다. 이번 장에서는 스레드를 이용하여 멀티플렉싱을 구현하는 방법을 알아보기로 합시다. 4.1 스레드 스레드란 하나의 프로세스 내에서 독립적인 수행할 수 있는 작업 단위입니다. 예를 들어 파일 공유 P2P 프로그램을 사용할 때 동시에 여러 개의 파일을 다운로드를 받는 것은 스레드를 사용한 대표적인 예입니다. #include using namespace std; #include #include void ThreadEntryPointA(void *param) { for(int ..

3. TCP 에코 서버/클라이언트 만들기 [TCP/IP 소켓 통신 프로그래밍 with 윈도우즈]

3. TCP 에코 서버/클라이언트 만들기 이번 장에서는 TCP 프로토콜을 이용하여 간단한 에코 서버와 에코 클라이언트를 만들어 봅시다. 이를 통해 여러분은 윈속 라이브러리에서 제공하는 기본 함수들의 사용법을 살펴볼 수 있습니다. 에코 서버란 클라이언트에서 수신한 데이터를 클라이언트에게 재전송하는 서버를 말합니다. 3.1TCP 통신 절차 TCP 프로토콜을 이용한 통신은 서버와 클라이언트 사이에 연결을 형성한 후에 스트림 방식으로 패킷을 송수신합니다. 스트림 방식의 통신에서는 전송한 패킷의 순서대로 도착하며 패킷 전송 중에 전송이 실패하면 다시 전송하여 신뢰성을 보장하는 방식입니다. TCP 통신에서 서버는 대기 소켓을 생성하고 로컬 소켓 주소로 네트워크 인터페이스와 결합한 후에 백 로그 큐를 설정합니다. 이..

2.5 자주 사용하는 윈속 함수[TCP/IP 소켓 통신 프로그래밍 with 윈도우즈]

2.5 자주 사용하는 윈속 함수 윈속을 이용하여 TCP/IP 통신 프로그램을 작성할 때 사용하는 기본적인 함수와 자료형을 살펴봅시다. 여기에서 소개하는 함수는 다음 장부터 실제 사용하는 방법을 예제 코드와 함께 설명할게요. 여기에서는 먼저 윈속 라이브러리의 기본적인 함수와 자료 형식을 간략하게 살펴봅시다. 2.5.1 socket, closesocket 윈속 라이브러리에서는 소켓 생성 함수와 소켓을 닫는 함수를 제공합니다. 소켓과 로컬 네트워크 인터페이스를 결합하는 함수 int bind(SOCKET sock,const struct sockaddr *addr,int addrlen); 실패 시: -1(SOCKET_ERROR) 반환 소켓 주소 구조체 typedef struct sockaddr { u_short ..

2. 윈도우즈 소켓 [TCP/IP 소켓 통신 프로그래밍 with 윈도우즈]

2. 윈도우즈 소켓 네트워크 통신 프로그래밍을 하기 위해서 사용하는 입출력 인터페이스를 소켓이라 부릅니다. 버클리 대학에서 시작한 BSD 유닉스가 최초의 소켓이며 흔히 소켓이라 부르면 버클리 소켓을 말합니다. 그리고 버클리 소켓을 기반으로 마이크로 소프트 사에서 윈도우즈 운영체제에서 사용할 수 있게 만든 소켓을 윈도우즈 소켓이라 부르며 흔히 윈속이라 줄여서 불리고 있습니다. 윈속은 윈도우즈 운영체제의 버전 업그레이드와 함께 변화하였는데 95년에 윈속 2.0을 발표하였으며 이 책에서는 윈속 2.2 버전을 사용합니다. 이번 장에서는 윈속에서 제공하는 기본적인 함수와 자료형들에 관하여 살펴봅시다. 2.1 윈속 초기화 윈속을 사용하려면 먼저 WinSock2.h 파일을 포함하고 ws2_32.dll을 동적 링크하여..

중학 영어 단어 동사 (beat ~ combine)

중학 영어 단어 동사 (beat ~ combine) *자동 보기 슬라이드 쇼를 만든 것입니다. 단어=>그림=>뜻=>예문=>예문풀이 순으로 반복합니다.* 1주일 단위로 20개의 단어를 익히면 3년 3,000 단어를 익힐 수 있습니다. beat[biːt] 두드리다. 이기다. 비트He is beating at the door. 그는 문을 두드리고 있어요. believe[bilíːv, bə-] 믿다. ~라고 생각하다.I believe that he is honest. 나는 그가 정직하다고 믿어. benefit [bénəfit] 도움이 되다. 이익, 혜택 She benefited from compassion. 그녀는 동정으로 혜택을 얻었어. betray [bitréi] 배신하다. 밀고하다.He wasn't bet..

중학 영어 단어 동사 (appeal ~ base)

중학 영어 단어 동사 (appeal ~ base) *자동 보기 슬라이드 쇼를 만든 것입니다. 단어=>그림=>뜻=>예문=>예문풀이 순으로 반복합니다.*1주일 단위로 20개의 단어를 익히면 3년 3,000 단어를 익힐 수 있습니다. appeal [əpíːl] 호소하다. 간청하다. 호소, 간청 I appeal to your sense of reality. 나는 당신의 현실 감각에 호소합니다. applaud [əplɔ́ːd] 박수치다. 칭찬하다. I hope that he applauds the system. 나는 그가 시스템을 환영하길 기대해요. appreciate [əpríːʃièit] 감사하다. 이해하다. 감사, 감상 He appreciated the significance of those differen..

중학 영어 단어 동사 (Abandon~Annoy)

중학 영어 단어 동사 (Abandon~Annoy) *자동 보기 슬라이드 쇼를 만든 것입니다. 단어=>그림=>뜻=>예문=>예문풀이 순으로 반복합니다.* 1주일 단위로 20개의 단어를 익히면 3년 3,000 단어를 익힐 수 있습니다. Abandon [əbǽndən] 포기하다. He abandoned his right. 그는 그의 권리를 포기했다. Aboard [əbɔ́ːrd] 탑승하다. 외국 It's time to go aboard. 탑승할 시간이다. Absorb [æbsɔ́ːrb, æbzɔ́ːrb] 열중하다. 흡수하다.He is absorbed in his study. 그는 공부에 열중하고 있다. Accompany [əkΛmpəni] 같이가다. Who is going to accompany you? 누가 ..

영어 발음기호

영어 발음기호 [그림] 영어 발음 기호표 주의할 발음 S 혀를 치아 근처에 간 상태에서 '스' θ 혀를 입술 사이에 넣은 상태에서 뒤로 빼면서 "쓰드" ð 혀를 입술 사이에 넣은 상태에서 뒤로 빼면서 "드" v 윗니로 아래 입술을 문 상태에서 출발 '븨' b 입술을 다문 상태에서 출발 '비' f 윗니로 아래 입술을 문 상태에서 출발 '픠' p 입술을 다문 상태에서 출발 '피' r 혀끝을 입 천장에 닿지 않은 상태로 '아르' l 혀끝을 입 천장에 대면서 '엘'

[C#] 원형 패턴(Prototype Pattern)

4. 원형 패턴(Prototype Pattern) 원형 패턴은 미리 만들어진 개체를 복사하여 개체를 생성하는 패턴을 말합니다. 그리고 이때 미리 만들어진 개체를 원형 개체라 부릅니다. 일반화 관계로 표현할 때 파생 클래스의 개수가 과도히 많아지고 각 클래스의 메서드에서 수행하는 알고리즘에 차이가 없고 생성 시에 개체의 속성값만 다르다면 원형 패턴을 사용하는 것이 효과적입니다. 2016/04/25 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 4. 원형 패턴(Prototype Pattern) - 개요, 시나리오 2016/04/25 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#]4. 원형 패턴(Prototype Pattern) - 설계(Design) 2..

[C#] 팩토리 메서드 패턴(Factory Method Pattern)

3. 팩토리 메서드 패턴(Factory Method Pattern) 프로그래밍하다 보면 같은 방법으로 사용할 수 있는 여러 종류의 개체를 일반화하여 기반 클래스를 정의하고 이를 기반으로 파생 클래스로 정의하는 것은 매우 흔합니다. 이 경우에 사용하는 곳에서 구체적으로 어떠한 개체를 생성해서 사용할 지에 대하여 개발 초기 단계에서 결정할 수 없다면 어떻게 하면 좋을까요? 팩토리 메서드 패턴을 이용하면 이러한 고민을 해결할 수 있습니다. 추상 팩토리 클래스에서는 사용할 개체(추상 클래스)를 생성하는 것에 대해 약속만 합니다. 대신 파생 팩토리 클래스에서 구체적으로 어떠한 개체를 생성할 것인지 구현합니다. 이처럼 구체적인 개체를 생성하는 부분을 분리하면 추상 팩토리 클래스에서는 어떠한 개체를 생성할 것인지에 ..

반응형