운영체제 및 네트워크 전반에 걸친 복잡한 소켓 프로그래밍의 씨줄과 날줄을 파헤치고 이를 효과적으로 활용하는 방법을 보여주는 책. 기본 개념에서 중고급 기능을 넘어 실무 응용으로 올라가는 계단식 학습법으로 구성되어 있다. 운영체제별 특성을 잘 살린 시스템 프로그래밍의 원리와 기초를 알려주고 다중...
1부. 소켓 프로그래밍 맛보기와 네트워크의 이해
1장. 소켓 프로그래밍 맛보기
01. 소켓 프로그래밍이란
02. 처음 해보는 소켓 프로그래밍
03. 실행과 테스트
04. 무슨 일이 일어났는가
이것만은 알고 갑시다
2장. 네트워크의 기본 이론
01. 네트워크와 인터넷
02. 네트워크의 물리적 구성 요소
03. 인터넷이란
04. 인터넷의 주소체계
05. DNS
06. 포트의 의미
07. 프로토콜이란
08. TCP/IP 프로토콜
09. TCP/IP 네트워크 데이터 전송 과정의 이해
10. OSI 모델 적용
11. UDP
2부. 소켓 프로그래밍 맛보기와 네트워크의 이해
3장. 소켓의 동작 원리와 이해
01. 소켓의 기본 동작 방식
02. 서버/클라이언트 개념
03. 소켓으로 작성하는 서버/클라이언트 프로그램의 동작 방법
4장. TCP 서버/클라이언트 프로그래밍
01. TCP 프로토콜의 특징과 활용
02. TCP 클라이언트 프로그램 구현
03. TCP 서버 프로그램 구현
5장. UDP 서버/클라이언트 프로그래밍
01. UDP 프로토콜의 특징과 활용
02. UDP 클라이언트 프로그램 구현
03. UDP 서버 프로그램 구현
3부. 중급 네트워크 프로그래밍 Ⅰ: 유닉스/리눅스
6장. 시스템 프로그래밍 기초
01. 왜 시스템 프로그래밍인가
02. 파일 입출력 다루기
03. 프로세스의 생성과 제어
04. 포직스 시그널을 이용한 프로세스간 동기화
05. IPC: 프로세스간 통신
06. 스레드의 개념과 생성
7장. 다중 접속 처리 서버 구현
01. 멀티 프로세스 모
02. 멀티 스레드 모델
03. I/O 멀티플렉싱 모델
8장. 성능 향상을 위한 소켓 제어
01. 소켓 옵션의 개념과 설정 방법
02. 성능 향상을 위한 소켓 옵션의 활용
9장. RAW 소켓을 이용한 패킷 제어
01. RAW 소켓: 스위스 만능 칼
02. RAW 소켓 프로그래밍
03. RAW 소켓을 이용한 ping 프로그램 만들기
04. RAW 소켓을 이용한 스니퍼 프로그램 만들기
4부. 중급 네트워크 프로그래밍 Ⅱ: 윈도우
10장. MFC 윈도우 네트워크 프로그래밍
01. 간단한 MFC CSocket TCP 프로그램
02. 제대로 된 MFC CSocket TCP 프로그램
03. MFC CAsyncSocket TCP 프로그램
04. MFC CAsyncSocket UDP 프로그램
11장. 윈도우 스레드 프로그래밍
01. 들어가기에 앞서
02. 스레드 생성하기
03. MFC CWinThread 사용하기
04. 스레드와 메시지
05. 스레드와 윈도우
06. 스레드간 동기화
07. 멀티 스레드에서 MFC Socket 사용하기
12장. Win32 윈속 프로그래밍
01. 윈속 I/O 모델
02. WSAAsyncSelect 모델
03. WSAAsyncSelect 프로그램 작성하기
04. WSAEventSelect 모델
05. WSAEventSelect 프로그램 작성하기
13장. 윈도우 기반의 다중 접속 처리
01. 다중 접속 서버의 구현
02. 동적할당
03. 연결 리스트
04. MFC 리스트 클래스의 활용
05. MFC 리스트 클래스를 이용해서 다중 접속 서버 만들기
06. 스레드를 사용한 다중 접속 서버 모델
07. 프로세스를 사용한 다중 접속 서버 모델
5부. 고급 네트워크 프로그래밍 Ⅰ: 유닉스/리눅스
14장. 유닉스/리눅스 고성능 서버 구현
01. 기존 기술들의 문제점
02. 리얼타임 시그널을 통한 이벤트 기반 입출력 처리
03. epoll: 이벤트 기반 소켓 연결 방식
15장. 멀티미디어 데이터를 위한 멀티캐스팅 응용
01. 멀티캐스트: 고화질 멀티미디어 컨텐츠 마술사
02. 브로드캐스트: 멀티캐스트의 사촌
6부. 고급 네트워크 프로그래밍 Ⅱ: 윈도우
16장. 유용한 Winsock2 프로그래밍
01. Winsock2 소개
02. 조건부 억셉트
03. scatter-gather I/O
17. 윈속 고성능 네트워크 프로그래밍
01. 오버랩드 I/O
02. Winsock2 오버랩드 I/O 프로그래밍
03. 이벤트 객체를 이용한 오버랩드 I/O 결과 통보 받기
04. 완료 함수를 통한 오버랩드 I/O 결과 통보 받기
05. APC
06. 이벤트 방식의 오버랩드 I/O와 스레드
07. 완료루틴 방식의 오버랩드 I/O와 스레드
08. IOCP
7부. 실무 네트워크 프로그래밍
18장. 꼭 알아야 할 네트워크 문제 해결
01. 네트워크 패킷 스니핑 도구: 어떨 때 사용하면 되는가
02. 패킷의 경계 구분: 데이터만 보내면 어떤 일이 발생하는가
03. 소켓 타임 아웃: 네트워크가 끊기면 어떤 현상이 발생하는가
19장. 실전 프로젝트: 고급 채팅 서버와 클라이언트
01. 프로그램 설계
02. 프로그램 제작