HOME > Detail View

Detail View

(정석용의) TCP/IP 소켓 프로그래밍 : 코드를 분석, 개선, 추가하는 방식으로 기본 코드부터 실무 코드까지 (Loan 115 times)

Material type
단행본
Personal Author
정석용
Title Statement
(정석용의) TCP/IP 소켓 프로그래밍 : 코드를 분석, 개선, 추가하는 방식으로 기본 코드부터 실무 코드까지 / 정석용 지음
Publication, Distribution, etc
부천 :   프리렉,   2009  
Physical Medium
606 p. : 삽화 ; 26 cm
Series Statement
열혈강의
ISBN
8989345014 9788989345015
General Note
색인수록  
000 00000cam c2200205 c 4500
001 000045558606
005 20170530161256
007 ta
008 090921s2009 ggka 001c kor
020 ▼a 8989345014 ▼g 93000
020 ▼a 9788989345015 ▼g 93000
035 ▼a (KERIS)BIB000011794164
040 ▼d 211012 ▼d 211012 ▼d 211009 ▼d 244002 ▼a 211009 ▼c 211009
082 0 4 ▼a 004.62 ▼2 22
085 ▼a 004.62 ▼2 DDCK
090 ▼a 004.62 ▼b 2009z3
100 1 ▼a 정석용
245 2 0 ▼a (정석용의) TCP/IP 소켓 프로그래밍 : ▼b 코드를 분석, 개선, 추가하는 방식으로 기본 코드부터 실무 코드까지 / ▼d 정석용 지음
260 ▼a 부천 : ▼b 프리렉, ▼c 2009
300 ▼a 606 p. : ▼b 삽화 ; ▼c 26 cm
440 0 0 ▼a 열혈강의
500 ▼a 색인수록
945 ▼a KINS

No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 004.62 2009z3 Accession No. 121186309 Availability Available Due Date Make a Reservation Service B M
No. 2 Location Sejong Academic Information Center/Science & Technology/ Call Number 004.62 2009z3 Accession No. 151298772 Availability Available Due Date Make a Reservation Service
No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 004.62 2009z3 Accession No. 121186309 Availability Available Due Date Make a Reservation Service B M
No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Sejong Academic Information Center/Science & Technology/ Call Number 004.62 2009z3 Accession No. 151298772 Availability Available Due Date Make a Reservation Service

Contents information

Book Introduction

실무에서 개발할 개연성이 있는 프로그램의 기초가 되는 미니 프로젝트를 함께 다루었다.실무 예제 분석
과 기능 개선으로 소켓 프로그램의 전체 구조를 파악할 수 있게 도우며 다양한 환경(리눅스와 MS 윈도
우)에서 데이터 통신에 대한 안목을 제공한다.프로토콜 정의와 처리, 운영체제와 연계한 부가 기능을 제
공하는 예제들이 수록되어 있다.

네트워크하면 연상이 되는 것은 OSI 7계층 구조, 전송, 통신망 구조 등의 개념 정도라고 할까? 이들 개념을 자신 있게 설명하지는 못해도 기본적인 네트워크 개론 등은 접해 보았을 것이고, C 그리고 C++, JAVA와 같은 프로그래밍 언어에 대한 기본적인 지식쯤은 있을 것으로 생각한다. 필자는 기본적인 프로그래밍 언어 구사 능력을 갖추고 통신망에 대해 기본적으로 이해하고 있는 독자를 대상으로 이 책을 통해 다음과 같은 질문에 대한 답을 효과적으로 제시하고 싶었다.

우리가 알고 있는 네트워크에 대해 어떻게 프로그래밍할까?
소켓 프로그램이 시스템 내부적으로 어떻게 동작할까?

대부분의 독자에게는 소켓 프로그램의 전체 구조를 보기까지 너무 많은 인내심을 요구하는 상향식(Bottom-up) 방식보다는 기존 소켓 프로그램을 우선 분석하고, 여기에 기능을 새로 추가하거나 기존 기능을 개선하는 하향식(Top-down) 방식이 효과적이라는 확신을 필자는 갖고 있다. 회사에서 신입 개발자를 대상으로 기존 프로그램을 분석하고 개선하는 과제를 반복적으로 수행하는 직무교육(OJT, On the Job Tranning)을 실시하는 이유와 맥을 같이 한다.

물론 기존 프로그램을 분석하는 과정에서 처음 접하거나 익숙하지 않은 함수나 연산 개념 등이 등장하겠지만 약간의 추측과 상상력을 동원하면서 흐름을 놓치지 않도록 노력한다면 그리 큰 장애는 되지 않을 것이다. 한편 전체 프로그램 구조를 이해하고 세부 기능을 개선하는 방법에서는 다소 큰 규모의 프로그램을 빨리 접할 수 있다는 장점도 갖는다.

사실 소켓 프로그램은 대단히 실무적인 프로그램 분야라고 할 수 있다. TCP/IP 통신망인 인터넷 환경이 급속히 확산됨에 따라 소켓 프로그램을 활용한 기술은 적용 분야가 넓어져 웹 응용 프로그램 개발뿐만 아니라 웹 카메라나 인터넷 전화, IPTV와 같은 응용 분야에서 원격 제어 시스템, 로봇 분야에까지도 적용되고 있다. 특히, 최근에는 복잡한 프로토콜과 클라이언트 프로그램을 별도로 개발할 필요도 없고 접속 장소에 제한이 없는 등의 장점 때문에 임베디드 시스템에 웹 기술을 적용한 인터넷 장치들이 잇달아 제안되었다. 웹 브라우저로 인터넷 장치에 접근함은 물론 감시와 제어 기능까지도 수행한다.

따라서 이 책에서 다룰 소켓 프로그램도 책이라는 한정된 틀에서 벗어나 실무에 적용하기 위해서는 좀더 실제적인 예제가 필요했다. 세부 기능을 이해하고 설명하기에 적합한 예제와 실무 개발에 적합한 예제는 다소 다를 수 있다. 대부분 개념서를 통해 접한 예제 프로그램이 개념 이해에 적합한 예제 중심으로 짜여지기 때문에 여기까지만 학습하고 실무 프로젝트에 투입될 경우 많이 당황하게 된다. 이런 이유로 이 책에서는 실무에서 개발할 개연성이 있는 프로그램의 기초가 되는 미니 프로젝트를 함께 다루었다.

한편 이 책과 함께 제공할 강의도 많은 관심을 가졌으면 한다. 책을 보면서 혼자 학습할 수 있는 과목도 있고, 강의 수강을 통해 학습 시간을 단축하고 효과도 높이는 과목이 있을 수 있다. 네트워크 환경, 시스템 프로그램, 운영체제 등의 이해가 필요한 소켓 프로그램은 강의 수강이 필요한 대표적인 과목으로 판단된다. 이런 점에서 이 책과 함께 인터넷 강의가 제공된다는 사실은 어쩌면 독자에게 귀중한 선물이 될 것이다.


Information Provided By: : Aladin

Author Introduction

정석용(지은이)

서울대학교 계산통계학과 학사 한국과학기술원 정보및통신공학과 석사 아주대학교 컴퓨터공학과 박사 [경력] 1996.3 ~ 2009.7 (현재) 동양공업전문대학 전산정보학부 부교수 - 컴퓨터 네트워크, 소켓 프로그래밍 관련 강의 1987.1 ~ 2006.2 LG 정보통신 중앙연구소 - 교환기 소프트웨어 개발 2005.1 ~ 2006.2 미국 Anyuser, Inc - VoIP 시스템 소프트웨어 개발

Information Provided By: : Aladin

Table of Contents

목차
Part I 소켓 프로그래밍 시작하기 = 25
 Chapter 01 소켓 프로그래밍 맛보기 = 29
  1.1 hello, world를 출력하는 소켓 프로그램의 구현 = 30
   서버 프로그램 = 31
   클라이언트 프로그램 = 41
  1.2 텔넷으로 웹 서버에 접속하기 = 5
  1.3 윈도우 기반에서 MFC로 소켓 프로그램의 구현 = 48
   클라이언트 프로그램 = 49
   서버 프로그램 = 58
 Chapter 02 내친김에 소켓 프로그래밍 확장하기 = 74
  2.1 hello, world를 출력하는 소켓 프로그램의 기능 확장 = 74
   서버 프로그램 = 75
   클라이언트 프로그램 = 82
  2.2 파일 목록을 출력하는 소켓 프로그램의 구현 = 85
   파일 목록 읽어 내기 = 86
   서버 프로그램 = 90
   클라이언트 프로그램 = 97
 Chapter 03 소켓 프로그래밍에서 알아야 할 기본 = 102
  3.1 소켓 프로그래밍 = 102
   프로토콜별 계층 구조 = 102
   OSI 7계층과 TCP/IP 4계층 비교 = 104
   소켓 프로그래밍 단계 = 108
  3.2 TCP와 UDP에 대해서 = 109
  3.3 소켓의 생성과 종료 = 111
  3.4 소켓을 이용한 자료의 송수신 = 122
  3.5 socketpair 함수를 이용한 소켓 프로그램의 구현 - 프로세스 하나에서 = 125
  3.6 socketpair 함수를 이용한 소켓 프로그램의 구현 - 두 프로세스 간에 = 130
Part 2 단일 접속 서버 구현하기 = 141
 Chapter 04 클라이언트/서버 모델 = 146
  4.1 포트(Port)와 서비스(Service) = 146
   포트(Port) = 146
   포트별 서비스 내역을 출력하는 프로그램 = 150
  4.2 주소의 구성 = 153
   바이트 순서(Byte Order) = 154
   네트워크/호스트 바이트 순서 간 자료 변환 = 156
   IP 주소 변환 = 160
   프로토콜 주소의 구성 = 168
 Chapter 05 TCP 소켓 프로그래밍 = 173
  5.1 서버 프로그램의 기능 수행 = 174
   연결 준비 단계 = 176
   서비스 처리 단계 = 186
   연결 종료 단계 = 195
  5.2 클라이언트 프로그램의 기능 수행 = 201
   서버 연결 = 203
   자료의 송수신 = 205
   연결 종료 = 208
  5.3 TCP 기반 에코(Echo) 프로그램의 구현 = 208
   서버 프로그램 = 209
   클라이언트 프로그램 = 215
   연결 종료에서 부딪치는 문제 = 219
 Chapter 06 UDP 소켓 프로그래밍 = 225
  6.1 서버 프로그램의 기능 수행 = 227
   연결 준비 단계 = 227
   서비스 처리 단계 = 228
  6.2 클라이언트 프로그램의 기능 수행 = 230
   연결 준비 단계 = 231
   서비스 처리 단계 = 232
  6.3 UDP 기반 에코 프로그램의 구현 = 233
   서버 프로그램 = 235
   클라이언트 프로그램 = 235
  6.4 UDP에서의 신뢰성 문제 = 238
   자료 전송 중의 손실 = 238
   응답 대상에 대한 확인 = 243
   서버의 미실행 오류 = 246
  6.5 UDP를 이용한 브로드캐스팅(Broadcasting) = 249
Part 3 다중 접속 서버 구현하기 = 259
 Chapter 07 멀티프로세싱 방식의 다중 접속 서버 = 263
  7.1 fork 함수를 이용하는 다중 접속 서버의 구조 = 263
  7.2 fork 함수 = 264
  7.3 fork 함수를 이용한 다중 접속 서버의 구현 = 267
  7.4 시그널(Signal)과 좀비(Zombie) 프로세스 = 274
   시그널의 등록과 처리 = 275
   wait 함수로 자식 프로세스의 종료 상태 확인 = 279
   좀비 프로세스의 생성 방지 = 283
  7.5 fork 함수를 이용한 talk 프로그램의 구현 = 290
   서버 프로그램 = 293
   클라이언트 프로그램 = 297
 Chapter 08 멀티스레딩 방식의 다중 접속 서버 = 303
  8.1 스레드를 이용하는 다중 접속 서버의 구조 = 303
  8.2 스레드 = 304
  8.3 Pthread를 이용한 스레드 생성 = 307
   pthread_create 함수와 pthread_join 함수 = 307
   스레드에서 전역 변수의 사용 = 314
  8.4 스레드를 이용한 다중 접속 서버의 구현 = 319
  8.5 Pthread를 이용한 talk 프로그램의 구현 = 322
   서버 프로그램 = 322
   클라이언트 프로그램 = 326
 Chapter 09 멀티플렉싱 방식의 다중 접속 서버 = 331
  9.1 select 함수를 이용하는 다중 접속 서버의 구조 = 331
  9.2 select 함수 = 332
  9.3 select 함수를 이용한 다중 접속 서버의 구현 = 337
  9.4 select 함수를 이용한 talk 프로그램의 구현 = 341
   서버 프로그램 = 342
   클라이언트 프로그램 = 345
 Chapter 10 MFC로 talk 프로그램 구현하기 = 349
  10.1 클라이언트 프로그램 = 350
   TalkClient 프로젝트의 생성 = 350
   소켓 객체 CSocket::CTalkClientSocket의 생성 = 352
   GUI 설계와 컨트롤에 대한 멤버 함수와 멤버 변수의 추가 = 357
   리눅스 기반의 서버 프로그램과 연동 실습 = 365
  10.2 서버 프로그램 = 368
   TalkServer 프로젝트의 생성 = 368
   소켓 객체 CSocket::CListenSocket과 CSocket::CServiceSocket의 생성 = 371
   GUI 설계와 컨트롤에 대한 멤버 함수와 멤버 변수의 추가 = 379
   MFC로 구현한 talk 클라이언트와의 연동 실습 = 387
Part 4 TCP 내부 동작과 Raw 소켓 = 391
 Chapter 11 TCP 내부 동작 = 394
  11.1 TCP 상태 변화 = 394
   연결 준비 단계 = 395
   자료 송수신 단계 = 404
   연결 종료 단계 = 406
  11.2 TCP 소켓 옵션 = 411
   SO_KEEPALIVE 옵션 = 415
   SO_LINGER 옵션 = 416
   SO_REUSEADDR 옵션 = 419
   SO_RCVBUF와 SO_SNDBUF 옵션 = 420
   SO_TYPE 옵션 = 421
   SO_RCVTIMEO와 SO_SNDTIMEO 옵션 = 421
   SO_DONTROUTE 옵션 = 422
 Chapter 12 Raw 소켓 = 423
  12.1 Raw 소켓의 생성과 입출력 = 423
   Raw 소켓의 생성 = 424
   Raw 소켓의 입출력 = 426
  12.2 TCP SYN 포트 스캔 프로그램의 구현 = 430
  12.3 Raw 소켓을 이용한 ping 프로그램의 구현 = 452
Part 5 프로젝트로 실습하기 = 463
 Chapter 13 프로젝트 - 웹 서버 = 467
  13.1 HTTP에 대해서 = 467
  13.2 HTTP 메시지에 대한 규격 = 470
   요청 라인(Request Line) = 471
   요청 헤더(Request Header) = 472
   일반 헤더(General Header) = 474
   응답 헤더(Response Header) = 474
   개체 헤더(Entity Header) = 475
   상태 라인(Status Line) = 476
  13.3 웹 서버의 구현 = 478
   프로그램의 구현과 실습 과정 = 480
   아파치 웹 서버의 설정 확인 = 481
   텔넷을 이용하여 아파치 웹 서버에 웹 문서 요청 = 483
   웹 클라이언트 프로그램의 구현 = 485
   fork 함수를 이용한 웹 서버 프로그램 = 488
   스레드를 이용한 웹 서버 프로그램 = 504
 Chapter 14 프로젝트 - 채팅 프로그램 = 511
  14.1 채팅 프로그램 = 512
  14.2 select 함수를 이용한 채팅 프로그램의 구현 = 515
   서버 프로그램 = 515
   클라이언트 프로그램 = 521
   구현한 프로그램의 검증 = 524
  14.3 스레드를 이용한 채팅 프로그램의 구현 = 526
   서버 프로그램 = 526
   클라이언트 프로그램 = 532
   구현한 프로그램의 검증 = 536
  14.4 윈도우 기반에서 MFC로 채팅 서버 프로그램의 구현 = 537
   ChatServer 프로젝트의 생성 = 538
   소켓 객체 CSocket::CListenSocket과 CSocket::CServiceSocket의 생성 = 540
   GUI 설계와 컨트롤에 대한 멤버 함수와 멤버 변수의 추가 = 550
   구현한 프로그램의 검증 = 557
 Chapter 15 프로젝트 - FTP 프로그램 = 561
  15.1 FTP(File Transfer Protocol) = 562
   능동 모드(Active Mode)와 수동 모드(Passive Mode) = 563
   서버에 로그인하기(login 명령) = 566
   서버의 파일 목록 열람하기(list 명령) = 567
   서버의 파일 가져오기(get 명령) = 568
   서버로 파일 보내기(put 명령) = 569
   서버의 디렉토리 변경하기(cd 명령) = 570
  15.2 파일 처리 관련 함수 = 571
   표준 입출력 함수를 이용한 파일 처리 = 571
   저수준 입출력 함수를 이용한 파일 처리 = 579
  15.3 FTP 클라이언트 프로그램의 구현 = 583
INDEX = 604

New Arrivals Books in Related Fields

김자미 (2021)