HOME > Detail View

Detail View

(얇지만 얇지 않은) TCP/IP 소켓 프로그래밍 C (Loan 30 times)

Material type
단행본
Personal Author
Donahoo, Michael J. Calvert, Kenneth L., 저 유재필, 역
Title Statement
(얇지만 얇지 않은) TCP/IP 소켓 프로그래밍 C / 마이클 도나후, 케네스 칼버트 지음 ; 유재필 옮김
Publication, Distribution, etc
서울 :   BJ퍼블릭,   2009  
Physical Medium
x, 283 p. : 삽화 ; 23 cm
Series Statement
얇지만 얇지 않은 시리즈 ;001
Varied Title
TCP/IP sockets in C : practical guide for programmers (2nd ed.)
ISBN
9788996276517
General Note
부록: 개발환경구축  
Bibliography, Etc. Note
참고문헌(p. 280)과 색인수록
비통제주제어
네트워크연결 , 클라이언트서버 , 소켓프로그래밍 ,,
000 01117camcc2200325 c 4500
001 000045575628
005 20131121173616
007 ta
008 091231s2009 ulka b 001c kor
020 ▼a 9788996276517 ▼g 13560
035 ▼a (KERIS)BIB000011855414
040 ▼a 211044 ▼c 211044 ▼d 211044 ▼d 244002 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 4 ▼a 004.62 ▼2 23
085 ▼a 004.62 ▼2 DDCK
090 ▼a 004.62 ▼b 2009z6
100 1 ▼a Donahoo, Michael J.
245 2 0 ▼a (얇지만 얇지 않은) TCP/IP 소켓 프로그래밍 C / ▼d 마이클 도나후, ▼e 케네스 칼버트 지음 ; ▼e 유재필 옮김
246 1 9 ▼a TCP/IP sockets in C : ▼b practical guide for programmers ▼g (2nd ed.)
260 ▼a 서울 : ▼b BJ퍼블릭, ▼c 2009
300 ▼a x, 283 p. : ▼b 삽화 ; ▼c 23 cm
440 0 0 ▼a 얇지만 얇지 않은 시리즈 ; ▼v 001
500 ▼a 부록: 개발환경구축
504 ▼a 참고문헌(p. 280)과 색인수록
653 ▼a 네트워크연결 ▼a 클라이언트서버 ▼a 소켓프로그래밍
700 1 ▼a Calvert, Kenneth L., ▼e
700 1 ▼a 유재필, ▼e
900 1 0 ▼a 도나후, 마이클, ▼e
900 1 0 ▼a 칼버트, 케네스, ▼e

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 2009z6 Accession No. 121227357 Availability Available Due Date Make a Reservation Service B M
No. 2 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 004.62 2009z6 Accession No. 121227358 Availability Available Due Date Make a Reservation Service B M
No. 3 Location Sejong Academic Information Center/Science & Technology/ Call Number 004.62 2009z6 Accession No. 151284059 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 Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 004.62 2009z6 Accession No. 121227357 Availability Available Due Date Make a Reservation Service B M
No. 2 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 004.62 2009z6 Accession No. 121227358 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 2009z6 Accession No. 151284059 Availability Available Due Date Make a Reservation Service B M

Contents information

Book Introduction

의 개정판(2판). 세련되고 강력한 인터넷 응용 프로그램을 개발하는데 필요한 지식과 기술들을 알려준다. C 소켓을 이용하는 서버-클라이언트 프로젝트에 필요한 필수 기술 및 방법을 마스터 할 수 있도록 돕는다. 2판은 IPv6뿐만 아니라 개발자의 실수나 외부의 올바르지 않은 접근에도 정상적인 서비스를 수행하는 보호 기법도 포함하고 있다.

책은 얇지만 내용은 결코 얇지 않은
IPv6와 C++를 포함한 TCP/IP 소켓 프로그래밍 실용 가이드


"C 언어와 소켓을 이용하여 20년 이상 프로그램을 개발해왔지만 여전히 이 책이 필요하다 는 것을 느꼈다. 이 책은 소켓을 가지고 C 언어 기반의 네트워크 응용 프로그램을 개발할 때 경험하게 되는 난해한 문제들과 그 해결 방안을 모두 다루고 있다." - Bobby Krupczak

본 도서는 2001년 출간 당시 대단한 반향을 일으킨 베스트셀러 『TCP/IP 소켓 프로그래밍 C버전(2001년, 지앤선) 』의 개정판(2판)(원서 또한 세계적인 베스트셀러이다)으로, 세련되고 강력한 인터넷 응용 프로그램을 개발하는데 필요한 지식과 기술들을 빠르고 적절하게 알려주고 있다. 자습서 형식으로 기술된 이 책은 C 소켓을 이용하는 서버-클라이언트 프로젝트에 필요한 필수 기술 및 방법을 마스터 할 수 있도록 한다. 제 2판은 IPv6뿐만 아니라 개발자의 실수나 외부의 올바르지 않은 접근에도 정상적인 서비스를 수행하는 보호 기법도 포함하고 있다.

분량은 가능한 얇게, 그리고 경험과 코드는 가능한 많이 담자는 저자들의 철학을 기반으로 쓰여진 이 책은 다음과 같은 특징을 가지고 있다.

특징
-IPv6 네트워크 환경, 방어적 프로그래밍 기법, select 시스템 콜에 대한 확장
-C++ 소켓 프로그래밍의 추가
-데이터 표현에 관련된 특성들과 메시지 구조화 및 파싱 전략
-행 단위의 친절한 코드 설명으로 빠른 웹 기반 응용 프로그램 작성이 용이함
-웹 사이트를 통해 모든 예제코드를 제공(출판사 홈페이지에서도 다운로드 가능)
-환경설정을 통해 코드의 수정 없이 윈도우에서도 실행이 가능하도록 부록 추가
-출판사 홈페이지를 통해 강의자료 요청 가능(*강의자료는 강의자에게만 제공됨을 알려드립니다)

저자 서문 중에서
"비록 이번 2판은 1판에 비해 양적으로 다루는 범위가 상당히 많아진 것은 사실이나, 우리는 이 책이 여전히 실무적인 본 역할에 충실하기를 바라고 있다. 이 책은 유용한 코드를 작성하고자 하는 실무자들을 위한 단 한 권의 입문 도서로도 전혀 손색이 없다. 실습을 하면서 배운다라는 우리의 철학은 변함이 없다. 또한 혼자 학습하여 배우기를 원하는 사람에게 간결한 자습서 기능을 제공하고, 다른 복잡한 부분들은 또 다른 저자들에게 남겨둔다는 우리의 방식도 여전히 변함이 없다. 우리의 목표는 학생, 실무자 그리고 모든 독자들에게 본인이 스스로 실험하고 스스로 학습을 시작할 수 있도록 하는 환경을 제공하는 것이다."

독자대상 : 초중급
인터넷에서 운용되는 응용 프로그램을 스스로 개발하고자 하는 실무자
학부나 대학원 과정에서 컴퓨터 네트워크의 기초 과정에 있는 학생

소스코드 다운로드 및 강의자료 요청 http://www.bjpublic.co.kr

*출판사 리뷰

1판과 다른 점들
이번 2판에서는 두 개의 장을 추가한 것을 포함하여 기존 내용의 대부분이 갱신되고 확장되었다. 1판과 다른 점들은 다음과 같다.

1. IPv6를 다룬다. IPv4 전용, IPv6 전용, IPv4-IPv6 범용(Generic) 코드를 포함하였다. 이 책의 후반부에 나오는 코드들은 듀얼-스택(dual-stack) 기반의 호스트에서 IPv4와 IPv6 중 어느 코드라도 지원하도록 설계되었다.

2. 장을 추가하였다(이 부분은 David B. Sturgill이 도움을 주었다). PracticalSocket 라이브러리는 C++ 소켓 라이브러리로서 C 언어 기반의 기본 기능을 포함하는 래퍼(wrapper) 클래스 기능을 제공한다. 이러한 래퍼 클래스들을 사용하게 될 경우, 라이브러리를 제공하고 프로토콜 계층 구조를 하나씩 드러내는 과정을 통해 C 언어의 기초지식이 부족한 학생들에게도 충분한 교육이 가능하다. 학생들은 단순히 주소/포트와 클라이언트/서버 등의 이해만 가지고도 곧바로 개발을 시작할 수 있다. 후반부에 래퍼 클래스의 내부를 엿보는 과정을 통해서 소켓 프로그래밍의 세세한 내부 면모를 확인할 수 있다. 네트워킹과 관련된 주제(운영체제 등)를 교육하는 경우, 위 라이브러리를 사용하면서 가끔 표지 정도만 살펴봐도 될 정도이다.

3. 데이터 표현에 관련된 부분과 송수신 메시지를 구성하는 방법에 관련된 코드 구성을 강화하였다. 실제 현장에서 교육을 한 경험에 비추어보면, 최근에 많은 학생들이 메모리에 데이터가 실제로 어떻게 저장되는지에 대한 이해 수준이 점점 더 떨어지고 있다는 것을 알 수 있었다. 따라서 우리는 이러한 중요한 주제를 심도 있게 논의하면서 모자란 부분을 보충하려고 노력했다. 동시에 국제화에 대한 중요성이 높아짐에 따라 와이드(wide) 문자형과 인코딩을 기본적으로 다루는 방법을 포함하였다.

4. API 참조 목록 부분은 삭제하였다. 소켓 API를 구성하는 대부분의 함수에 대한 설명들은 초반의 장들에서 모두 소개된다. 또한 'man 페이지'와 같은 수많은 API 정보들이 온라인 상에 존재함으로써 우리는 더 많은 코드 설명을 위해서 API 레퍼런스를 빼버리기로 했다.

5. 중요하지만 지나치기 쉬운 사실이나 경고 등을 강조하였다. 페이지 여백의 특수 기호(!)들은 처음 읽었을 때 쉽게 지나치기 중요한 개념이나 정보들을 나타낸다.


Information Provided By: : Aladin

Author Introduction

Michael J. Donahoo(지은이)

Baylor University의 조교수이다.

Kenneth L. Calvert(지은이)

University of Kentucky의 부교수로서, 그곳에서 컴퓨터 네트워크 프로토콜의 설계와 구현에 관한 강의와 연구를 수행하고 있다. 그는 1980년대 중반에 첫 TCP/IP 소켓 프로그램을 작성하였다.

유재필(옮긴이)

그는 다년간 건국대학교에서 학부생을 대상으로 데이터 통신/네트워트 프로그래밍을 가르쳐 왔으며 C/C++를 기반으로 하는 소켓 프로그래밍 교육 경험이 풍부하다. 현재 (주)엑스엔지에서 소프트웨어 총괄을 맡고 있으며 무선 네트워크와 코덱 제어를 연동하는 부분을 담당하고 있다.

Information Provided By: : Aladin

Table of Contents

목차
차례 = ⅳ
역자서문 = ⅷ
chapter 00 시작하기 전에 = 1
 2판을 내면서 = 1
  1판과 다른 점들 = 2
  이 책을 읽을 대상은 = 4
  이 책을 읽기 위해 필요한 기반 지식 = 4
  플랫폼 요구사항과 이식성 = 5
  이 책으로 전문가가 되지는 않는다! = 7
  감사의 글 = 8
  의견교환 = 8
chapter 01 서론 = 9
 1.1 네트워크, 패킷 그리고 프로토콜 = 10
 1.2 주소에 대하여 = 14
  1.2.1 IP 주소의 표기법 = 14
  1.2.2 두 개의 다른 주소 버전의 처리 = 15
  1.2.3 포트 번호 = 16
  1.2.4 특별한 주소들 = 16
 1.3 (도메인)네임 주소에 대하여 = 18
 1.4 클라이언트와 서버 = 19
 1.5 소켓이란 무엇인가? = 20
 심화학습 = 22
chapter 02 TCP 소켓 = 23
 2.1 IPv4 TCP 클라이언트 = 24
 2.2 IPv4 TCP 서버 = 31
 2.3 소켓의 생성과 해지 = 39
 2.4 주소 지정 = 40
  2.4.1 범용 주소 형식 = 41
  2.4.2 IPv4 주소 = 41
  2.4.3 IPv6 주소 = 42
  2.4.4 범용 주소 스토리지 = 43
  2.4.5 이진/문자열 주소 변환 = 44
  2.4.6 소켓의 연관 주소를 얻는 법 = 45
 2.5 소켓에 연결 = 45
 2.6 소켓을 주소와 바인딩하기 = 46
 2.7 클라이언트의 연결 요청 처리 = 48
 2.8 데이터 주고받기 = 49
 2.9 IPv6의 사용 = 50
 심화학습 = 53
chapter 03 도메인 네임 서비스와 주소 패밀리(IPv4-IPv6 서비스) = 55
 3.1 도메인 네임 주소를 숫자 주소로 매핑하기 = 56
  3.1.1 도메인 네임 서비스에 접근하기 = 57
  3.1.2 상세 분석 = 63
 3.2 IP 버전에 무관한 주소-범용 코드의 작성 = 64
  3.2.1 IP 버전에 무관한 범용 TCP 클라이언트 = 66
  3.2.2 IP 버전에 무관한 범용 TCP 서버 = 71
  3.2.3 IPv4-IPv6 상호 연결 = 75
 3.3 숫자 주소에서 도메인 네임 주소 획득하기 = 76
 심화학습 = 77
chapter 04 UDP 소켓 = 79
 4.1 UDP 클라이언트 = 80
 4.2 UDP 서버 = 85
 4.3 UDP 소켓을 이용한 데이터 송신 및 수신 = 89
 4.4 UDP 소켓의 연결 = 91
 심화학습 = 92
chapter 05 데이터의 송수신 = 93
 5.1 정수 인코딩 = 94
  5.1.1 정수의 크기 = 95
  5.1.2 바이트 순서화 = 97
  5.1.3 부호화와 부호 확장 = 99
  5.1.4 정수 인코딩을 직접 해보자 = 101
  5.1.5 TCP 소켓을 스트림으로 포장하기 = 105
  5.1.6 구조체 오버레이: 정렬과 채우기 = 107
  5.1.7 문자열과 텍스트 = 112
  5.1.8 비트 조작: 참, 거짓 값의 인코딩 = 115
 5.2 메시지 생성, 프레이밍 그리고 파싱 = 116
  5.2.1 프레이밍 = 125
  5.2.2 텍스트 기반의 메시지 인코딩 = 133
  5.2.3 이진 형식의 메시지 인코딩 = 137
  5.2.4 최종 완성본 = 140
 5.3 마무리 = 140
 심화학습 = 141
chapter 06 중급 소켓 프로그래밍 = 143
 6.1 소켓 옵션 = 143
 6.2 시그널 = 145
 6.3 넌블로킹 입/출력 = 152
  6.3.1 넌블로킹 소켓 = 153
  6.3.2 비동기 입/출력 = 155
  6.3.3 타임아웃 = 160
 6.4 멀티태스킹 = 165
  6.4.1 개별 프로세스로 클라이언트를 처리하는 모델 = 166
  6.4.2 개별 스레드로 클라이언트를 처리하는 모델 = 174
  6.4.3 제한적(constrained) 멀티태스킹 = 179
 6.5 멀티플렉싱 = 182
 6.6 다수의 수신자 처리 = 189
  6.6.1 브로드캐스트 = 190
  6.6.2 멀티캐스트 = 194
  6.6.3 브로드캐스트 vs 멀티캐스트 = 201
 심화학습 = 201
chapter 07 소켓의 내부 동작 = 203
 7.1 버퍼링과 TCP = 206
 7.2 데드락의 위험성 = 210
 7.3 성능 관련 사항 = 212
 7.4 TCP 소켓 생명 주기 = 213
  7.4.1 연결 = 213
  7.4.2 TCP 연결의 종료 = 219
 7.5 역다중화 해부 = 224
 심화학습 = 227
chapter 08 C++ 소켓 프로그래밍 = 229
 8.1 PracticalSocket 라이브러리 개요 = 230
 8.2 플러스 원(+1) 서비스 = 233
  8.2.1 플러스 원(+1) 서버 = 233
  8.2.2 플러스 원(+1) 클라이언트 = 236
  8.2.3 플러스 원(+1) 서버와 클라이언트의 실행 = 238
  심화학습 = 239
 8.3 설문조사 프로그램 = 239
  8.3.1 설문조사 프로그램을 위한 함수 = 240
  8.3.2 설문조사 서버 = 244
  8.3.3 설문조사 클라이언트 = 251
  8.3.4 조사(Survey) 서버와 클라이언트의 실행 = 253
 8.4 설문조사 프로그램 버전 2 = 253
  8.4.1 Socket Address 클래스의 사용 = 254
  8.4.2 Socket iostream 인터페이스 = 255
  8.4.3 강화된 설문조사 서버 = 256
  8.4.4 강화된 설문조사 클라이언트 = 263
  8.4.5 관리자 클라이언트 = 265
  8.4.6 강화된 설문조사 서버와 클라이언트의 실행 = 266
  심화학습 = 267
chapter 09 부록 - 개발환경 구축 = 269
 9.1 유닉스 개발환경 = 270
 9.2 윈도우 개발환경 = 271
  9.2.1 윈도우 플랫폼에서 소스 코드를 수정 없이 컴파일 할 수 있는 개발환경 설정 = 271
  9.2.2 교재의 예제코드를 윈도우 버전(Winsock)으로 포팅하는 방법 = 279
참고문헌 = 280
찾아보기 = 281

New Arrivals Books in Related Fields

Culkin, John, (Software architect) (2023)
Nielsen, Michael A. (2022)
Dejonghe, Derek (2022)
Shrivastava, Saurabh (2022)
Qureshi, Hamid Mahmood (2022)