메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT CookBook, TCP/IP 윈도우 소켓 프로그래밍

IT CookBook, TCP/IP 윈도우 소켓 프로그래밍

한빛아카데미

집필서

절판

  • 저자 : 김선우
  • 출간 : 2013-07-28
  • 페이지 : 604 쪽
  • ISBN : 9788998756444
  • 물류코드 :4044
  • 개정판정보 :개정판이 새로 출간되었습니다. 개정판 보기
  • 본 도서는 대학 강의용 교재로 개발되었으므로 연습문제 해답은 제공하지 않습니다.
  • 초급 초중급 중급 중고급 고급
3.6점 (7명)
좋아요 : 256

IPv4/IPv6를 지원하는 윈도우 네트워크 프로그래밍의 체계적인 학습

네트워크 개론 과목을 이수한 IT 관련 학부생과 IT 전문 학원 수강생을 대상으로 하여 점진적인 방식으로 구성했다. 1부 준비 학습과 2부 기본 학습에서 소켓 프로그래밍 기본을 다지고, 3부 심화 학습을 통해 고급 소켓 프로그래밍 기술을 익힌다. 4부 실전 프로젝트에서는 실용적인 소프트웨어 제작을 통해 배운 내용을 복습하면서 실무에 필요한 응용력을 키울 수 있다. 또한 중고급 주제까지 포함하고 있어 개인 학습자나 현업 개발자에게도 도움이 될 것이다.

 

준비, 기본, 심화, 실전 프로젝트 형태로 구성되어 있다. 1부 준비 학습과 2부 기본 학습에서는 소켓 프로그래밍의 기본을 다지고, 3부 심화 학습을 통해 고급 소켓 프로그래밍 기술을 익힐 수 있다. 4부 실전 프로젝트에서는 실용적인 소프트웨어 제작을 통해 1~3부에 걸쳐 배운 내용을 복습하면서 실무에 필요한 응용력을 키울 수 있다.


1부. 준비 학습(1-3장)
네트워크 프로그래밍에 필요한 이론과 개념을 다루고, 윈도우 소켓 프로그래밍의 특징과 장단점을 소개한다. 또한 소켓 프로그래밍을 본격적으로 시작하기 위한 필수 함수와 자료 구조를 단계적으로 익힌다.

2부. 기본 학습(4-9장)
TCP와 UDP 서버-클라이언트를 중심으로 소켓 응용 프로그램의 기본 구조와 핵심 함수 사용법을 학습한다. 코드는 IPv4를 기본으로 작성하되 IPv6를 지원하는 방법도 소개한다. 또한 실용적인 서버-클라이언트 구현에 필요한 다양한 데이터 전송 방법과 동시 작업 처리 기법, 소켓 옵션을 이용한 세부 제어, GUI 소켓 응용 프로그램 제작 방법을 다룬다.

3부. 심화 학습(10-13장)
기본 학습에서 구현한 서버의 효율성을 개선하여 시스템 자원을 적게 사용하면서도 다수의 클라이언트를 효율적으로 처리할 수 있게 해주는 다양한 소켓 입출력 모델을 학습한다. 그 밖의 주제로는 Raw 소켓을 이용한 저수준 네트워크 프로그래밍, 직렬 통신과 IrDA, 블루투스 프로그래밍을 다룬다.

4부. 실전 프로젝트(14장)
실전 응용 프로그램을 제작하는 과정을 통해 소켓 함수와 서버 작성 모델을 종합적으로 정리한다. IPv4와 IPv6를 동시에 지원하는 서버와 클라이언트를 각각 콘솔과 GUI 응용 프로그램 형식으로 제작한다.

 

김선우 저자

김선우

서울대학교 천문학과와 컴퓨터공학부를 졸업하고, 동 대학원에서 컴퓨터공학을 전공했습니다. 비트교육센터 강사로 윈도우/리눅스 분야를 교육했으며, 현재는 이레이어 시스템 수석 연구원으로 삼성전자 등 기업 위주의 임베디드/모바일/.NET/AI 기술 교육과 더불어 교육 관련 개발도 병행하고 있습니다. 저서로 『IT CookBook, 쉽게 배우는 MFC 윈도우 프로그래밍』(한빛아카데미, 2020), 『IT CookBook, 단계별로 배우는 안드로이드 프로그래밍』(한빛아카데미, 2017) 등 일곱 권이 있고, 역서로 『찰스 페졸드의 Programming Windows, 5th Edition』(한빛미디어, 2004)이 있습니다. 

Part 01 준비 학습:소켓 프로그래밍 입문

 

Chapter 01 네트워크와 소켓 프로그래밍 

01 TCP/IP 프로토콜 개요 

02 소켓의 개념

03 윈도우 소켓(윈속) 

요약/연습문제 

 

Chapter 02 윈도우 소켓 시작하기 

01 오류 처리 

02 윈속 초기화와 종료

03 소켓 생성과 닫기

요약/연습문제 

현장의 목소리 : 바닥이 튼튼한 소프트웨어를 만들어 주세요 

 

Chapter 03 소켓 주소 구조체 다루기 

01 소켓 주소 구조체 

02 바이트 정렬 함수 

03 IP 주소 변환 함수 

04 도메인 이름 시스템과 이름 변환 함수 

요약/연습문제 

 

Part 02 기본 학습:소켓 프로그래밍 기본

 

Chapter 04 TCP 서버-클라이언트

01 TCP 서버-클라이언트 구조 

02 TCP 서버-클라이언트 분석

03 TCP 서버-클라이언트(IPv6) 

요약/연습문제 

 

Chapter 05 데이터 전송하기 

01 응용 프로그램 프로토콜과 데이터 전송 

02 다양한 데이터 전송 방식 

03 고정 길이+가변 길이 데이터 전송 

04 데이터 전송 후 종료 

요약/연습문제

 

Chapter 06 멀티스레드 

01 스레드 기초 

02 멀티스레드 TCP 서버 

03 스레드 동기화 

04 이벤트

요약/연습문제 

 

Chapter 07 UDP 서버-클라이언트

01 UDP 서버 클라이언트 구조

02 UDP 서버 클라이언트 분석

03 UDP 서버 클라이언트(IPv6)

04 브로드캐스팅 

요약/연습문제

 

Chapter 08 소켓 옵션 

01 소켓 옵션의 종류와 관련 함수 

02 SQL_SOCKET 레벨 옵션

03 IPPROTO_IP, IPPROTO_IPV6 레벨 옵션 

04 멀티캐스팅 코드 분석 

요약/연습문제 

 

Chapter 09 GUI 소켓 응용 프로그램

01 GUI 응용 프로그램

02 GUI 소켓 응용 프로그램 

03 대화상자 기반 응용 프로그램 

04 대화상자 기반 소켓 응용 프로그램

요약/연습문제 

 

Part 03 심화 학습:소켓 프로그래밍 고급

 

Chapter 10 소켓 입출력 모델(I) 

01 소켓 입출력 모델 개요 

02 Select 모델

03 WSAAsynSelect 모델 

04 WSAEventSelect 모델 

요약/연습문제 

 

Chapter 11 소켓 입출력 모델(II)

01 Overlapped 모델(I) 

02 Overlapped 모델(II) 

03 Completion Port 모델 

04 소켓 입출력 모델 비교 

요약/연습문제 

 

Chapter 12 Raw 소켓 

01 Raw 소켓 기초 

02 Ping 프로그램 

03 Ping 프로그램 코드 분석 

04 ICMP.DLL 활용

요약/연습문제 

 

Chapter 13 직렬 통신과 무선 통신 프로토콜 

01 직렬 통신 

02 무선 통신 프로토콜 : IrDA 

03 무선 통신 프로토콜 : 블루투스 

04 블루투스 통신 프로그램 작성 

요약/연습문제 

 

Part 04 실전 프로젝트:IPv4/IPv6 지원 멀티데이터 전송 프로그램

 

Chapter 14 IPv4/IPv6 지원 멀티데이터 전송 프로그램 제작

01 멀티데이터 전송 프로그램 제작

02 응용 프로그램 작성

03 서버 코드 분석 

04 클라이언트 코드 분석 

05 추가 구현 사항

현장의 목소리 : 경험으로 체득한 지식 

이 책의 모든 예제가 Visual Studio 2010 버전으로 작성이 되어 있는데 현재 버전으로 테스트 하니 컴파일 오류가 발생합니다. 각 코드의 맨 앞줄에 #define _WINSOCK_DEPRECATED_NO_WARNINGS 을 넣으면 이 교재의 형태대로 수행은 되나 예전 소켓 API를 지원하는 프로그램인지라 새로 작성해야 하는 문제가 생기네요.

 

현재 무료로 다운 받을수 있는 Visual Studio 를 기준으로 수행될 수 있도록 해주어야 입문서로 또 대학교재로 이용가능합니다.

   저자께서 현재의 VS 버전으로 수행될 수 있도록 책을 개정해 주시는게 가장 좋을 듯 합니다.

설명이 세부적이지가 않아서 초보자에겐

너무나 어렵네요. 이거 연습문제

답지라도 있었으면 참 좋았을텐데요.

그리고 연습문제는 이책의 예제로만은 풀 수 없는 것들도 많더라구요.

이 책을보는 초보자도 있자나요 좀 그걸 위해서 주석좀 많이 써주시던가요.

그리고 이 답이 맞앗는지 확인할 수도 없고 이게 머에요

윈도우 소켓을 이용하여 네트워크 프로그래밍을 시작하는 IT관련 학부생, 개인 학습자, 현업 개발자들을 위해 쓰인 책으로, 준비 단계부터 심화 단계에 이르기까지 체계적인 학습으로 구성되어 초보자에게 적절한 설명과 예제를 통해서 소켓 프로그래밍에 대한 어려움이 없도록 배려하고 있다.

그리고 일반 소켓 프로그래밍 서적과는 달리 IPv6 프로토콜과 스마트 폰과 PC의 결함을 응용할 수 있는 직렬통신 및 무선통신 프로토콜 내용을 추가적으로 보완하는 예제를 담고 있다. 또한 윈도우 소켓 함수 위주로 다루기보다 유닉스/리눅스 공통함수를 다루므로 해서 크로스플랫폼 측면으로도 접근하고 있고, 윈도우 운영체제에 특화된 주제들을 포괄함으로 다양한 문제들에 대한 해결에도 도움이 될 것이다.

몇 가지 부족한 점이 있다면 가장 중요하게 강조한 부분인 응용 프로그램 간 효과적인 데이터 전송 방법의 설명에서 정해진 BUFSIZE보다 넘치는 BUFSIZE로 들어오게 되는 상황(서적은 서버와 클라이언트 간에 데이터가 정의되어 있다는 가정 하에 작은 크기의 BUFSIZE를 사용한다.)에 대한 대응 방법이 부족하고, 그리고 너무 많은 주제를 다루다 보니 Chapter 9의 GUI 응용 프로그램에서 Win32 API를 이용한 프로그래밍은 일반 소켓 프로그래밍 서적보다는 윈도우 프로그래밍에서 네트워크 Chapter에서 다루어지고, 오히려 상술한 주제에 대한 심도 있는 접근이나 또 다른 주제에 대한 접근이 더 의미가 있을 것 같다.

마지막으로 서적을 읽고 예제를 따라하면서 중간 중간에 언급하는 “이 책의 범위를 넘어서는 주제는 관련 서적을 참고하기 바란다.“ 라는 내용에 대하여 참고할 수 있는 서적을 소개함으로 다음 단계로 나아가는데 많은 도움이 될 것이라고 생각한다.

빠른 시간내에 윈도우 소켓 프로그래밍에 필요한 지식을 습득하고, 실무에 적용하고 싶은 사람이 있다면 이 책을 적극적으로 추천하고 싶다.

본래 강의용 교재를 목표로 쓰여진 책인 만큼, 네트워크 기초 지식부터 시작하여 소켓 입출력 모델, RAW 소켓등과 같은 상당히 고급 기술에 속하는 부분까지 체계적으로 학습할 수 있도록 내용이 구성되어 있기 때문이다.

방대한 내용을 다루고 있지만 많은 페이지를 할당하여 예제 소스 위주로 설명하고 있으니 윈도우 프로그래밍에 대한 약간의 경험만 있다면 초보자라고 하더라도 책의 내용을 이해하는데는 무리가 없을 것이다.

그리고 프로그래밍 방법 그 자체에만 초점을 맞추지 않고 관련된 배경지식들까지 함께 기술하고 있기 때문에 이 책을 통해서 배운것들을 다른 운영체제나 다른 언어를 이용하여 소켓 프로그래밍을 하는 경우에도 쉽게 응용할 수 있다는 점은 너무나 큰 장점인 것 같다.

한 가지 아쉬운 점은 너무 많은 내용들을 다루려고 하다보니 후반부로 갈수록 지루해주는 경향이 있다는 것이다. 특히 윈도우 프로그램 경험이 없거나 익숙하지 못한 초보자들을 배려한 저자의 의도는 충분히 이해하겠지만 소켓 프로그래밍과 직접적인 관련이 없는 부분은 제거해도 좋을것 같다는 생각이 든다.

특히, CHAPTER 09의 01.GUI 응용 프로그램과 03.대화상자 기반 응용 프로그램은 일반적인 윈도우 프로그래밍 책에서 설명해야 될 내용들인것 같다.

작년에 연구 과제를 수행하면서 과제 결과물을 시연하기 위해서 소켓 프로그램을 작성한 적이 있었다. 물론 아무런 지식없이 인터넷 검색에 의존해서 개발하다보니 품질은 보장할 수 없었고, 그로 인해서 많은 마음 고생이 있었던 것도 사실이다. 이 책을 읽는 중간중간에 그 때 당시에 고민했던 많은 문제들이 떠올랐고, 동시에 그것에 대한 해결책도 구할 수 있었다.

이 책은 마치 TCP/IP에서 곰(초보자)을 사람(중급자)만들어 주는 책 같습니다.

TCP/IP 프로그래밍이라고 해서 " 프로그램 두개 돌리고, 메세지 보내고 받는 것부터 나오겠지"라는 예상으로 책을 보기 시작했습니다.
Chapter1의 이론적인 부분을 제외하면, 가장 먼저 배우는 것이 네트워크 프로그래밍의 필수적인 요수인 오류처리에 대해서 나왔습니다. 이는 네트워크 프로그래밍의 특성상 매우 중요한 오류처리부터 다루더군요.

네트워크 프로그래밍에 딱히 욕심이나 호기심이 없으신 분이라면 보기 힘드실 수 있습니다. 물론 욕심이나 호기심이 있으셔도 TCP/IP 소켓 프로그래밍이 처음이라면 힘드실 수 있습니다. 중반이후에서 부터는 챕터마다 독립된 코드를 사용하는 것이 아니라, 이전 챕터에서 나왔던 코드에 추가하는 형식으로 구성되어 원하는 챕터만 골라서 보시기 힘드실 수도 있습니다.

이런 점들에도 불구하고, 저자가 자신이 아는 것을 "모두 기술 한다"는 것을 넘어서 "모든것을 토해낸다"라는 느낌을 받을 수 있을 정도의 책입니다.

단순히 소켓에만 머물고 있는 것이 아니라, 스레드에 대해서도 자세히 기술되어 있고, 소켓 입출력 모델에 대해서도 다루고 있습니다.

C언어가 아닌 Java, C# 등으로 소켓프로그래밍을 구현하셔도 이 책에 원리가 있으니 어렵지 않게 구현하실 수 있으실 것 같습니다.


제가 책을 보면서 배운게 많아서 그런지 처음부터 끝까지 코드를 구현하며 정독할 가치가 있는 좋은 책인것 같습니다.

책을 전반적으로 한번 훑어 보며 느낀 점은 역시 한빛미디어에서 출판하는 교재의 스타일과 구성을 그대로 따랐다는 점입니다.
가장 마음에 드는 점은 충실한 이론과 다양한 예제 소스를 통하여 이론과 실습을 병행하여 수업을 진행할 수 있도록 책이 구성되어 있다는 것이지요.
대학교 수준의 수업에서 필요한 "이론+실습" 과정을 책 한 권을 통하여 해결할 수 있게끔 제시함으로써 정말로 "교재"로서의 기능에 충실한 책이라고 볼 수 있습니다.
입문과 기본, 심화 과정을 각 파트별로 나누어 자세히 풀이하였고 IPv4와 IPv6을 실전 프로젝트로 다루어 IPv4 뿐만 아니라 IPv6까지 실습할 수 있도록 구성한 점은 좋아보입니다.
또한 GUI 소켓 응용 프로그램과 무선 통신 프로토콜에서 블루투스 통신도 다루어 자칫 CUI 형태의 소켓 프로그래밍만으로 접할 수 있는 지루함을 해소하였다는 점도 눈여겨볼만 합니다.
이런 관점에서 볼 때 책의 기본과 제 기능(교재)에는 매우 충실한 교재였다고 봅니다.
그러나 심화 과정이나 단원 평가 문제 등은 다양한 난이도를 가지고 있어 과연 이 교재 하나만으로도 풀 수 있을 것인가 하는 의문이 듭니다.
지난 학기에 한빛미디어의 책으로 수업을 해 본 경험과 이번 책의 느낌을 맞물려 본다면 입문자 혹은 책을 처음 접하는 학생이 단원 평가를 풀다가 넘길 수도 있다는 생각이 드는군요.
물론 소켓 프로그래밍은 어느 정도 선행학습이 되었다는 가정 하에 학습해야 맞지만 다소 "어려운" 교재가 될 수도 있다는 생각을 해봤습니다.
제목에도 말했듯이 "대학교재로는 적합한, 그러나 입문서로는 다소 어려울 수 있는" 책이 아닐까 싶습니다.

IT Cook의 개정판들은 대학교제임에도 언제나 최신의 사용자 환경을 다루려고 많은 노력한것 같다는 느낌을 많은 받습니다. 이번 교제의 전체적인 설명과 예시 그림들은 윈도우 7 환경의 visual studio 2010으로 설명이 되어 있어(물론 최저 사양도 언급이 되어 있다.), 누구나 쉽게 따라해 보면서 이해하거나 적어도 예제 소스 Copy를 통해 도서의 결과 화면은 확인할 수 있습니다.
일단 우리가 네트워크를 접하게 되면, 반드시 TCP/IP 프로토콜과 소켓통신을 접하게 됩니다.
개념적으로만 잡고 가자면, 내부 코드가 궁금 하기도 하고, 소스 코드만 다루다 보면 자세한 설명도 부족하고 소스에 대한 주석은 더욱 부족하여 이 두가지를 중도를 지키는게 상당히 어렵다 보니, 교수 입장에서나 학생입장에서도 관심도가 다른 경우가 많은데, 이번 교제는 이 둘을 만족시키는 느낌이 든다.
교제 처음엔 준비 학습과 기본 설명이 있으며, 멀티스레드 소켓 옵션들까지 소스까지 설명되면서, 또한 IPv4와 IPv6의 차이점을 볼드체로 구분해준 것도 직관적으로 알아보기가 참 좋았습니다.
교제 마지막엔 실전 프로젝트로 최종 내용 복습까지, 전반적으로 중고급 주제가 다 포함되어 있어, 저학년때는 이론 위주로 고학년때는 소스를 살펴볼수 있도록 내용이 구성되어 있습니다.
누구나 한번쯤은 쉽게 따라서 결과물을 볼수 있는 구성과 다소 긴 느낌은 있었지만, 소스에 대한 설명과 중요부분 강조효과와, IrDA, 블루투스에 대한 언급도 좋았습니다.
네트워크 보안 측면에서 소켓 프로그램 측면에서도 약간 언급이 되었으면 어땧을가 하는 바램도 적어봅니다.

결제하기
• 문화비 소득공제 가능

도서구입 안내

<한빛아카데미> 도서는 한빛 홈페이지에서 더 이상 판매를 하지 않습니다. 도서 구입은 인터넷 서점을 이용하시기 바랍니다. 양해바랍니다.

리뷰쓰기

닫기
* 도서명 :
IT CookBook, TCP/IP 윈도우 소켓 프로그래밍
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
IT CookBook, TCP/IP 윈도우 소켓 프로그래밍
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
IT CookBook, TCP/IP 윈도우 소켓 프로그래밍
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실