간편결제, 신용카드 청구할인
카카오페이 4,000원
(최대할인 4천원 / 5만원 이상 결제, 기간 중 1회)
네이버페이 1%
(네이버페이 결제 시 적립)
북피니언 롯데카드 30% (17,640원)
(최대할인 3만원 / 3만원 이상 결제)
EBS 롯데카드 20% (20,160원)
(최대할인 3만원 / 3만원 이상 결제)
인터파크 NEW 우리V카드 10% (22,680원)
(최대할인 3만원 / 3만원 이상 결제)
인터파크 현대카드 7% (23,440원)
(최대할인 3만원 / 3만원 이상 결제)
Close

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

2013년 9월 9일 이후 누적수치입니다.

판매지수 168
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
  • 저 : 정석용
  • 출판사 : 프리렉
  • 발행 : 2009년 09월 10일
  • 쪽수 : 608
  • ISBN : 9788989345015
정가

28,000원

  • 25,200 (10%할인)

    1,400P (5%적립)

할인혜택
적립혜택자동적립
추가혜택
배송정보
주문수량
감소 증가
  • 이벤트/기획전

  • 연관도서(21)

  • 사은품(10)

출판사 서평

이 책의 특징

1. 실무 예제 분석과 기능 개선으로 소켓 프로그램의 전체 구조를 파악
2. 다양한 환경(리눅스와 MS 윈도우)에서 데이터 통신에 대한 안목을 제공
3. 프로토콜 정의와 처리, 운영체제와 연계한 부가 기능을 제공하는 예제들
4. 실무 수행 능력을 높이는 미니 프로젝트들

이 책의 독자층

1. 프로그램(C, C++, JAVA) 언어 구사력을 갖춘 소켓 프로그래밍 입문자
2. 소켓 프로그래밍 분야에서 실전 감각을 익히고자 하는 초급 개발자
3. 프로토콜 분석이나 프로토콜 설계 등을 수행하려는 중급 개발자
4. 웹 서버를 내장한 인터넷 장치 대상의 소켓 프로그램 개발자
5. 인터넷에 연결된 임베디드 시스템 대상의 소켓 프로그램 개발자

기획 의도

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

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


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

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

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

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

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

목차

PART I 소켓 프로그래밍 시작하기

1장 소켓 프로그래밍 맛보기

1.1 hello, world를 출력하는 소켓 프로그램의 구현
1.1.1 서버 프로그램
1.1.2 클라이언트 프로그램
1.2 텔넷으로 웹 서버에 접속하기
1.3 윈도우 기반에서 MFC로 소켓 프로그램의 구현
1.3.1 클라이언트 프로그램
1.3.2 서버 프로그램

2장 내친김에 소켓 프로그래밍 확장하기

2.1 hello, world를 출력하는 소켓 프로그램의 기능 확장
2.1.1 서버 프로그램
2.1.2 클라이언트 프로그램
2.2 파일 목록을 출력하는 소켓 프로그램의 구현
2.2.1 파일 목록 읽어 내기
2.2.2 서버 프로그램
2.2.3 클라이언트 프로그램

3장 소켓 프로그래밍에서 알아야 할 기본

3.1 소켓 프로그래밍
3.1.1 프로토콜별 계층 구조
3.1.2 OSI 7계층과 TCP/IP 4계층 비교
3.1.3 소켓 프로그래밍 단계
3.2 TCP와 UDP에 대해서
3.3 소켓의 생성과 종료
3.4 소켓을 이용한 자료의 송수신
3.5 socketpair 함수를 이용한 소켓 프로그램의 구현 - 프로세스 하나에서
3.6 socketpair 함수를 이용한 소켓 프로그램의 구현 - 두 프로세스 간에

PART 2 단일 접속 서버 구현하기

4장 클라이언트/서버 모델

4.1 포트(Port)와 서비스(Service)
4.1.1 포트(Port)
4.1.2 포트별 서비스 내역을 출력하는 프로그램
4.2 주소의 구성
4.2.1 바이트 순서(Byte Order)
4.2.2 네트워크/호스트 바이트 순서 간 자료 변환
4.2.3 IP 주소 변환
4.2.4 프로토콜 주소의 구성

5장 TCP 소켓 프로그래밍

5.1 서버 프로그램의 기능 수행
5.1.1 연결 준비 단계
5.1.2 서비스 처리 단계
5.1.3 연결 종료 단계
5.2 클라이언트 프로그램의 기능 수행
5.2.1 서버 연결
5.2.2 자료의 송수신
5.2.3 연결 종료
5.3 TCP 기반 에코(Echo) 프로그램의 구현
5.3.1 서버 프로그램
5.3.2 클라이언트 프로그램
5.3.3 연결 종료에서 부딪치는 문제

6장 UDP 소켓 프로그래밍

6.1 서버 프로그램의 기능 수행
6.1.1 연결 준비 단계
6.1.2 서비스 처리 단계
6.2 클라이언트 프로그램의 기능 수행
6.2.1 연결 준비 단계
6.2.2 서비스 처리 단계
6.3 UDP 기반 에코 프로그램의 구현
6.3.1 서버 프로그램
6.3.2 클라이언트 프로그램
6.4 UDP에서의 신뢰성 문제
6.4.1 자료 전송 중의 손실
6.4.2 응답 대상에 대한 확인
6.4.3 서버의 미실행 오류
6.5 UDP를 이용한 브로드캐스팅(Broadcasting)

PART 3 다중 접속 서버 구현하기

7장 멀티프로세싱 방식의 다중 접속 서버

7.1 fork 함수를 이용하는 다중 접속 서버의 구조
7.2 fork 함수
7.3 fork 함수를 이용한 다중 접속 서버의 구현
7.4 시그널(Signal)과 좀비(Zombie) 프로세스
7.4.1 시그널의 등록과 처리
7.4.2 wait 함수로 자식 프로세스의 종료 상태 확인
7.4.3 좀비 프로세스의 생성 방지
7.5 fork 함수를 이용한 talk 프로그램의 구현
7.5.1 서버 프로그램
7.5.2 클라이언트 프로그램

8장 멀티스레딩 방식의 다중 접속 서버

8.1 스레드를 이용하는 다중 접속 서버의 구조
8.2 스레드
8.3 Pthread를 이용한 스레드 생성
8.3.1 pthread_create 함수와 pthread_join 함수
8.3.2 스레드에서 전역 변수의 사용
8.4 스레드를 이용한 다중 접속 서버의 구현
8.5 Pthread를 이용한 talk 프로그램의 구현
8.5.1 서버 프로그램
8.5.2 클라이언트 프로그램

9장 멀티플렉싱 방식의 다중 접속 서버

9.1 select 함수를 이용하는 다중 접속 서버의 구조
9.2 select 함수
9.3 select 함수를 이용한 다중 접속 서버의 구현
9.4 select 함수를 이용한 talk 프로그램의 구현
9.4.1 서버 프로그램
9.4.2 클라이언트 프로그램

10장 MFC로 talk 프로그램 구현하기

10.1 클라이언트 프로그램
10.1.1 TalkClient 프로젝트의 생성
10.1.2 소켓 객체 CSocket::CTalkClientSocket의 생성
10.1.3 GUI 설계와 컨트롤에 대한 멤버 함수와 멤버 변수의 추가
10.1.4 리눅스 기반의 서버 프로그램과 연동 실습
10.2 서버 프로그램
10.2.1 TalkServer 프로젝트의 생성
10.2.2 소켓 객체 CSocket::CListenSocket과 CSocket::CServiceSocket의 생성
10.2.3 GUI 설계와 컨트롤에 대한 멤버 함수와 멤버 변수의 추가
10.2.4 MFC로 구현한 talk 클라이언트와의 연동 실습


PART 4 TCP 내부 동작과 Raw 소켓


11장 TCP 내부 동작

11.1 TCP 상태 변화
11.1.1 연결 준비 단계
11.1.2 자료 송수신 단계
11.1.3 연결 종료 단계
11.2 TCP 소켓 옵션
11.2.1 SO_KEEPALIVE 옵션
11.2.2 SO_LINGER 옵션
11.2.3 SO_REUSEADDR 옵션
11.2.4 SO_RCVBUF와 SO_SNDBUF 옵션
11.2.5 SO_TYPE 옵션
11.2.6 SO_RCVTIMEO와 SO_SNDTIMEO 옵션
11.2.7 SO_DONTROUTE 옵션

12장 Raw 소켓

12.1 Raw 소켓의 생성과 입출력
12.1.1 Raw 소켓의 생성
12.1.2 Raw 소켓의 입출력
12.2 TCP SYN 포트 스캔 프로그램의 구현
12.3 Raw 소켓을 이용한 ping 프로그램의 구현

PART 5 프로젝트로 실습하기

13장 프로젝트 - 웹 서버

13.1 HTTP에 대해서
13.2 HTTP 메시지에 대한 규격
13.2.1 요청 라인(Request Line)
13.2.2 요청 헤더(Request Header)
13.2.3 일반 헤더(General Header)
13.2.4 응답 헤더(Response Header)
13.2.5 개체 헤더(Entity Header)
13.2.6 상태 라인(Status Line)
13.3 웹 서버의 구현
13.3.1 프로그램의 구현과 실습 과정
13.3.2 아파치 웹 서버의 설정 확인
13.3.3 텔넷을 이용하여 아파치 웹 서버에 웹 문서 요청
13.3.4 웹 클라이언트 프로그램의 구현
13.3.5 fork 함수를 이용한 웹 서버 프로그램
13.3.6 스레드를 이용한 웹 서버 프로그램

14장 프로젝트 - 채팅 프로그램

14.1 채팅 프로그램
14.2 select 함수를 이용한 채팅 프로그램의 구현
14.2.1 서버 프로그램
14.2.2 클라이언트 프로그램
14.2.3 구현한 프로그램의 검증
14.3 스레드를 이용한 채팅 프로그램의 구현
14.3.1 서버 프로그램
14.3.2 클라이언트 프로그램
14.3.3 구현한 프로그램의 검증
14.4 윈도우 기반에서 MFC로 채팅 서버 프로그램의 구현
14.4.1 ChatServer 프로젝트의 생성
14.4.2 소켓 객체 CSocket::CListenSocket과 CSocket::CServiceSocket의 생성
14.4.3 GUI 설계와 컨트롤에 대한 멤버 함수와 멤버 변수의 추가
14.4.4 구현한 프로그램의 검증

15장 프로젝트 - FTP 프로그램

15.1 FTP(File Transfer Protocol)
15.1.1 능동 모드(Active Mode)와 수동 모드(Passive Mode)
15.1.2 서버에 로그인하기(login 명령)
15.1.3 서버의 파일 목록 열람하기(list 명령)
15.1.4 서버의 파일 가져오기(get 명령)
15.1.5 클라이언트로 파일 보내기(put 명령)
15.1.6 서버의 디렉토리 변경하기(cd 명령)
15.2 파일 처리 관련 함수
15.2.1 표준 입출력 함수를 이용한 파일 처리
15.2.2 저수준 입출력 함수를 이용한 파일 처리
15.3 FTP 클라이언트 프로그램의 구현

저자소개

생년월일 -
출생지 -
출간도서 0종
판매수 0권

서울대학교 계산통계학과 학사
한국과학기술원 정보및통신공학과 석사
아주대학교 컴퓨터공학과 박사

1996.3 ~ 2009.7 (현재) 동양공업전문대학 전산정보학부 부교수
- 컴퓨터 네트워크, 소켓 프로그래밍 관련 강의
1987.1 ~ 2006.2 LG 정보통신 중앙연구소
- 교환기 소프트웨어 개발
2005.1 ~ 2006.2 미국 Anyuser, Inc
- VoIP 시스템 소프트웨어 개발

저자의 다른책

전체보기

이 상품의 시리즈

열혈강의 시리즈 (프리렉)(총 45권 / 현재구매 가능도서 22권)

펼쳐보기

이 책과 내용이 비슷한 책 ? 내용 유사도란? 이 도서가 가진 내용을 분석하여 기준 도서와 얼마나 많이 유사한 콘텐츠를 많이 가지고 있는가에 대한 비율입니다.

    리뷰

    8.7 (총 0건)

    기대평

    작성시 유의사항

    평점
    0/200자
    등록하기

    기대평

    10.0

    교환/환불

    교환/환불 방법

    ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청함, 1:1 문의 게시판 또는 고객센터(1577-2555) 이용 가능

    교환/환불 가능 기간

    고객변심은 출고완료 다음날부터 14일 까지만 교환/환불이 가능함

    교환/환불 비용

    고객변심 또는 구매착오의 경우에만 2,500원 택배비를 고객님이 부담함

    교환/환불 불가사유

    반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가할 수 있음
    배송된 상품의 분실, 상품포장이 훼손된 경우, 비닐랩핑된 상품의 비닐 개봉시 교환/반품이 불가능함

    소비자 피해보상

    소비자 피해보상의 분쟁처리 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 따라 비해 보상 받을 수 있음
    교환/반품/보증조건 및 품질보증 기준은 소비자기본법에 따른 소비자 분쟁 해결 기준에 따라 피해를 보상 받을 수 있음

    기타

    도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 주문이 취소될 수 있음(이 경우 인터파크도서에서 고객님께 별도로 연락하여 고지함)

    배송안내

    • 인터파크 도서 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다

    • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

    • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능하여, 인터파크 외 타업체 배송상품인 경우 발송되지 않을 수 있습니다.

    • 배송비

    도서(중고도서 포함) 구매

    2,000원 (1만원이상 구매 시 무료배송)

    음반/DVD/잡지/만화 구매

    2,000원 (2만원이상 구매 시 무료배송)

    도서와 음반/DVD/잡지/만화/
    중고직배송상품을 함께 구매

    2,000원 (1만원이상 구매 시 무료배송)

    업체직접배송상품 구매

    업체별 상이한 배송비 적용