책 이미지

책 정보
· 분류 : 국내도서 > 대학교재/전문서적 > 공학계열 > 컴퓨터공학 > 네트워크
· ISBN : 9788975282607
· 쪽수 : 503쪽
· 출판일 : 2009-09-10
목차
1장 네트워크 프로그래밍 / 13
1절 네트워크와 응용 프로그램 14
2절 클라이언트-서버 모델 15
2.1 서버의 종류 17
3절 API 20
4절 소켓 인터페이스 22
4.1 소켓 시스템 호출 22
4.2 소켓 기술자(descriptor) 24
4.3 소켓 시스템 호출 종류와 기능 24
4.4 소켓 함수 사용 26
4.5 소켓의 동작 모드 28
5절 비연결형 서비스 30
2장 Unix 소켓 프로그래밍 I / 35
1절 프로그래밍 환경 36
2절 소켓 함수 사용 37
2.1 소켓 열기 37
3절 주소 변환 39
4절 연결형 소켓 프로그램 43
4.1 연결형 클라이언트 프로그램 43
4.2 연결형 서버 프로그램 48
5절 비연결형 소켓 프로그램 51
5.1 비연결형 클라이언트 프로그램 51
5.2 비연결형 서버 프로그램 54
3장 Unix 소켓 프로그래밍 II / 61
1절 소켓 동작 모드 62
1.1 블록킹 모드 변경 63
1.2 select() 사용 64
2절 연결형 소켓 프로그램(중급) 66
2.1 select()를 사용한 서버 프로그램 66
2.2 다중프로세싱 동시형 서버 71
3절 방송(broadcast) 서비스 응용 76
3.1 주소 클래스 76
3.2 방송 송신 프로그램 77
3.3 방송 수신 프로그램 79
4절 멀티캐스트 서비스 응용 81
4.1 IP 멀티캐스트 81
4.2 멀티캐스트 송신 프로그램 83
4.3 멀티캐스트 수신 프로그램 85
4장 Visual C와 윈도우즈 프로그래밍 / 89
1절 윈도우즈 프로그래밍 개념 90
1.1 WinMain() 91
1.2 프로시저 92
1.3 클래스 등록 94
1.4 메인 윈도우 만들기 96
1.5 리소스(Resource) 98
2절 Visual C 응용 프로그램 작성 98
2.1 Visual C와 Win32 SDK를 사용한 응용 프로그램 98
2.2 리소스 작성 103
2.3 리소스와 코드의 연결 106
2.4 컨트롤 108
5장 윈도우즈 소켓 / 115
1절 윈도우즈 소켓(Windows Socket) 116
1.1 윈속이 소켓과 다른 점 118
1.2 윈속의 동작 모드 119
1.3 윈속 사용 방법 120
2절 윈속 함수의 구성 126
2.1 표준 소켓 함수 127
2.2 윈속의 시작 및 종료 129
2.3 윈속 확장 함수 131
2.4 비동기 함수 133
2.5 데이터 베이스 함수 135
6장 윈속 콘솔 응용 프로그래밍 / 139
1절 콘솔 응용 프로그램 140
2절 소켓 예제 프로그램(콘솔응용) 140
2.1 타임 서비스 클라이언트 프로그램 140
2.2 자주 쓰이는 사용자 함수 144
2.3 에코 클라이언트 프로그램 145
2.4 서버 예제 프로그램(콘솔응용) 150
3절 하위 소켓사용 154
3.1 프로토콜을 활용하는 프로그래밍 154
3.2 하위 소켓 예제 157
7장 윈속 Win32 API 프로그래밍 / 169
1절 Win32 API, 소켓 사용(연결형) 170
1.1 연결형 클라이언트 예제 프로그램 170
1.2 연결형 서버 예제 프로그램 173
2절 Win32 API, 소켓 사용(비연결형) 176
2.1 UDP-Echo Client 176
2.2 UDP-Echo Server 179
2.3 방송 송신 프로그램(UDP 사용) 181
3절 윈속, WSAAsynchSelect() 사용 183
3.1 WSAAsynchSelect() 사용한 Echo 클라이언트 184
3.2 WSAAsynchSelect() 사용한 Echo 서버 198
8장 윈속 Win32 API 프로그래밍 II / 212
1절 WSAAsynchSelect()를 사용한 대화형 기반 응용 프로그램 214
1.1 대화 상자 사용 214
1.2 WSAAsynchSelect() 사용한 대화 상자형의 Echo 클라이언트 예제 222
2절 WinInet 232
2.1 인터넷 연결 설정 232
2.2 HTTP 관련 함수 234
2.3 예제 236
9장 C++ 언어 개요 / 249
1절 C++ 언어의 특징 250
1.1 구조적 프로그래밍 250
1.2 C++의 정체는 무엇인가? 251
1.3 객체지향 프로그래밍의 필요성 252
1.4 객체지향 프로그래밍의 특징 252
2절 C++ 언어의 실제 258
2.1 스트림 입출력과 설명문 258
2.2 클래스 기본 개념 258
2.3 생성자와 소멸자 함수 260
2.4 상속성 263
2.5 객체 포인터 265
2.6 클래스, 구조체, 공용체 265
2.7 인라인 함수 266
3절 클래스의 사용 268
3.1 객체의 치환 268
3.2 함수로의 객체 전달 269
3.3 Friend 함수 270
3.4 객체의 배열, 포인터, 참조 272
4절 상속성 277
4.1 기본 클래스 제어 277
4.2 다중 상속성 282
5절 함수 중복 289
5.1 생성자 함수의 중복 289
5.2 overload 키워드 290
5.3 기본값 인수의 사용 290
5.4 중복과 모호성 291
6절 C++ 입출력 시스템 293
6.1 포맷 입출력 293
7절 가상 함수, 추상 클래스 299
7.1 가상 함수 299
7.2 추상 클래스 300
10장 MFC / 303
1절 MFC 개요 304
1.1 MFC 구조 304
2절 MFC 응용 프로그램 생성 305
2.1 MFC AppWizard 사용 305
2.2 MFC 클래스와 구성 파일 315
3절 윈도우즈 응용 프로그램 형태 317
3.1 MDI 형태 프로그램 317
3.2 Dialog based 형태 프로그램 318
4절 ClassWizard 사용 320
5절 메시지 처리 322
11장 MFC 소켓 클래스 / 327
1절 소켓 관련 클래스들 328
1.1 CAsyncSocket 클래스 328
1.2 CSocket 클래스 333
1.3 CSocketFile 335
2절 간단한 echo client 335
2.1 프로젝트의 생성 335
2.2 대화 상자 만들기 338
12장 MFC 소켓 클래스 프로그래밍 / 341
1절 CSocket 클래스를 이용한 채팅 프로그램 342
1.1 클라이언트 부분 작성 342
1.2 채팅 서버의 구현 353
2절 CAsyncSocket 클래스 이용 예제 371
2.1 클라이언트와 서버의 개요 372
2.2 클라이언트 프로그램 EchoClient 376
2.3 서버 프로그램 EchoServ 382
13장 Visual Basic에서 소켓 프로그래밍 / 391
1절 비주얼 베이직 프로그래밍 절차 392
1.1 Winsock Control 392
2절 Winsock Control - 연결형 396
2.1 echo 클라이언트 396
2.2 예제 프로그램 - echo 서버 399
2.3 다중 연결 서버 401
3절 Winsock Control - 비연결형 402
3.1 로컬 프로그램 402
3.2 상대 프로그램 403
14장 Java 소켓 프로그래밍 / 407
1절 Java 프로그래밍 환경 408
1.1 Java 특징 408
1.2 Java 개발 도구 409
1.3 Java 언어 개요 413
2절 스트림 소켓 관련 클래스 417
2.1 Java 소켓 클래스 특징 417
2.2 InetAddress 클래스 418
2.3 문자 입출력 관련 클래스 418
2.4 Socket 클래스 420
2.5 Java echo-client 422
3절 ServerSoceket 클래스 425
3.1 ServerSocket 클래스 구성 425
3.2 Echo Server 예제 427
4절 데이터그램 소켓 클래스 437
4.1 DatagramPacket 클래스 437
4.2 DatagramSocket 클래스 439
4.3 비연결형 에코 클라이언트 예제 442
4.4 비연결형 에코 서버 예제 444
4.5 MulticastSocket 클래스 447
부록 / 449
1절 인터넷(Internet) 450
2절 인터넷 프로토콜(IP) 455
3절 전송 프로토콜 467
4절 응용 계층 프로토콜 475
찾아보기 / 505
저자소개
책속에서
컴퓨터 통신에 대한 관심이 있는 사람이라면 한 번쯤 내 손으로 자신의 네트워크 응용 프로그램을 제작해보기를 바라거나, 이미 한 번 쯤 시도를 해 보았을지 모르겠다. 때로는 데이터 통신이나 컴퓨터 네트워크에 대한 이론을 배우고서도 실제로 어떻게 동작을 하는지 이해가 잘 가지 않아 실험을 통해서 확인해보고 싶은 경우도 있을 것이다.
막상 네트워크 응용 프로그램을 제작하려고 하면 준비해야 될 것이 한두 가지가 아니다.
컴퓨터 하드웨어와 운영 체제, 통신망 특성에 따라 어떤 환경에서 프로그래밍을 할까?
어떤 프로그래밍 언어가 기능이 풍부할까?
내 능력에는 어떤 프로그래밍 언어가 적합할까?
라이버러리나 API는 어느 것이 우수할까? 등.
본 교재는 독자가 인터넷의 사용에 어려움이 없이 기본적인 컴퓨터 통신망의 동작 원리를 이해하고 최소한 C 언어 정도의 프로그래밍 교과목을 배운 적이 있다고 가정한다. 만일 독자가 프로그래밍에 관련된 과목을 배운 적이 없다면 참고 자료를 함께 공부하는 것이 도움이 될 것이다.
교재의 내용은 가능한 몇 개의 프로그래밍 환경에서 프로그래밍 방법과 실제 예제를 통하여 제작 방법을 다루며, 구성은 크게 다음과 같다.
- 먼저 네트워크 프로그래밍 기초와 소켓을 소개하고
- 유닉스 환경에서 소켓 프로그래밍
- 윈도우즈 환경에서 Win32 API를 사용한 소켓 프로그래밍
- 윈도우즈 환경에서 MFC 소켓 클래스를 활용한 프로그래밍
- Visual Basic을 사용한 소켓 프로그래밍
- Java 개발 도구를 사용한 소켓 클래스 프로그래밍
이 교재의 대상자는 전자/통신 및 컴퓨터 전공자는 물론, 컴퓨터 통신망과 프로그래밍에 대한 기본 지식을 가지고 있다면 비 전공자도 포함한다. 그러므로 전문대학 고급 과정이나 4년제 대학의 고학년에서 강의 및 실습 교재로 적합하다.
다양한 환경에서 소켓을 활용한 네트워크 프로그램을 소개하다보니 중급 또는 고급 사용자를 위한 깊이 있는 내용을 충분히 다루지 못한 아쉬움이 있으나 기회가 있으면 별도의 발간을 추진하기로 한다.
부족한 내용이나 수정할 사항이 있으면 계속해서 보완해 나가기로 하고, 이 교재를 출판하도록 도와주신 두양사 관계자께 감사를 드린다.
_ 머리말 에서