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

한빛출판네트워크

뇌를 자극하는 TCP/IP 소켓 프로그래밍

한빛미디어

집필서

절판

  • 저자 : 윤상배
  • 출간 : 2011-02-11
  • 페이지 : 748 쪽
  • ISBN : 9788979148046
  • 물류코드 :1804
  • 초급 초중급 중급 중고급 고급
0점 (0명)
좋아요 : 71
환경 구축, 친절한 예제, 최신 기술, 실전 예제로 이어지는 확실한 학습 로드맵
이 책은 입문자를 주 독자층으로 삼아 집필되었지만 쉬운 내용만 있는 것이 아니다. 네트워크 프로그래밍 환경 구축부터 IPv6에 이르기까지 네트워크 프로그래밍에 필요한 모든 것을 총 망라했다. 또한 기술별로 윈도우와 리눅스 샘플 모두를 제공하고 있으며 나아가 실용적인 파일 전송 프로그램과 웹서버 개발 예제 소스까지 제공한다. 지금 바로 이 책으로 선택하자. 네트워크를 정복할 수 있는 길이 여기에 있다.

Joinc.co.kr 운영자가 들려주는 네트워크 프로그램의 모든 것
전문가도 참고하는 JOINC 위키 운영자가 쓴 이 책은 10년간 수집된 방대한 자료를 집대성하였으며, 지면상의 이유로 미쳐 다 싣지 못한 자료는 JOINC 위키 사이트에서 찾을 수 있게 연계하였다.

주요 내용
네트워크 입문 / 파일과 소켓 / 네트워크 바이트 순서 / 인터넷 주소와 도메인 / TCP·UDP 소켓 프로그래밍 / 멀티 프로세스 / IPC / 고급 입출력 함수·모델·다중화 / 멀티 쓰레드 소켓 프로그래밍 / 리눅스 대용량 데이터 처리 기술 / 윈도우 고급 네트워크 프로그래밍 / RPC / 고급 소켓 옵션 / RAW Socket / 윈도우 IOCP 프로그래밍 / 멀티캐스팅 / IPv6 /

실용 예제
인터넷 서비스 프로그램 / 파일 전송 프로그램 / 웹서버 / 테스트용 클라이언트 프로그램

저자의 JOINC 위키 소개의 글
리눅스를 본격적으로 접했을 때가 1998년이었습니다. 그때 한참 irc에 빠져서 살았는데, irc에서 특정 채널이 접속하기 위한 명령이 join이였습니다. 그래서 C 채널에 접속하자라는 의미에서 joinc를 제 사이트 이름으로 정했습니다. 그렇게 2000년 개인적인 자료 정리공간으로 시작한 사이트가 어느덧 10년이라는 시간이 흘렀습니다. 지금도 초창기와 마찬가지로 개인적인 자료를 정리하는 개인 사이트이지만, 뜻하지 않게 많은 관심을 보여주셔서 나름 인지도를 가지게 되었습니다. 향후에는 리눅스 소식을 전하는 정보 채널 기능도 넣어 볼까 합니다.

 

<바로가기 링크 안내>

 

무료 동영상 강의 바로가기 c.png

윤상배 저자

윤상배

네트워크 프로그래밍에 관심있는 독자라면 한번쯤 들어봤음직한 JOINC(http://www.joinc.co.kr)의 운영자로서, 유닉스와 리눅스로 가능한 것은 뭐든 다 해보고 싶다는 목표를 갖고 있다. 또한 60세가 넘어서도 개발자이길 꿈꾼다.

저자 서문 
학습 로드맵 
 
1부. 소켓 네트워크 프로그래밍
1장. 네트워크와 TCP/IP
   01. 컴퓨터 네트워크의 역사 
      네트워크 프로그램이란? 
      네트워크의 출현과 진화 
      문명과 네트워크 
      컴퓨터의 네트워크 인터넷의 등장 
   02. 인터넷의 출현과 성장 
      군사 목적에서 시작된 인터넷 
      인터넷의 발단 
      인터넷의 성장 
   03. 인터넷을 달리는 TCP/IP 
   04. 인터넷의 네비게이션 - IP 
      Identity 
      인터넷에서 컴퓨터의 아이덴티티인 IP 주소 
   05. 인터넷에서 데이터 배달 - TCP 
   인터넷을 탄생시킨 TCP/IP 
   06. OSI 7계층과 TCP/IP 4계층 
      OSI 7계층 
      TCP/IP4 계층 
      네트워크 프로그래밍 
      TCP/IP4 계층으로 알아보는 네트워크 통신 흐름 
      네트워크 프로그램 환경 구축
2장. 네트워크 프로그램 환경 구축
   01. 리눅스 환경 구축
   02. 윈도우 환경 구축
   03. 운영체제의 선택 
   04. Virtualbox를 이용한 가상환경 구축
      소켓 네트워크 프로그래밍 이해 
3장. 소켓 네트워크 프로그래밍에 대한 이해
   01. 소켓에 대하여 
      버클리 소켓
      프로그램과 프로그램을 연결하는 소켓 
   02. 서버 클라이언트 모델 
      서버/클라이언트 모델 
      P2P 
      에이전트/매니저 모델 
      모델 선택 
   03. 서비스 포트 
      명시된 포트 번호 
      클라이언트 포트 번호 
      소켓 네트워크 프로그램 개발 
4장. 소켓 네트워크 프로그램 개발
   01. 네트워크 프로그래밍에 대해서 
      서버 프로그램과 클라이언트 프로그램의 흐름 
   02. 소켓의 생성 
   03. bind 함수를 이용한 소켓 설정 
   04. listen 함수를 이용한 수신 대기열 생성 
   05. accept 함수를 이용한 연결 대기
   06. connect 함수를 이용한 연결 요청 
   07. read와 write 함수 
      read 함수로 데이터 읽기 
      write 함수로 데이터 쓰기 
   08. close 함수로 연결 종료 
   09. 소켓 클라이언트 프로그램의 작성 
   10. 소켓 서버 프로그램의 흐름과 작성 
   11. 윈도우 소켓 프로그래밍 
      윈속을 이용한 소켓 프로그래밍 
      recv와 send 함수를 통한 데이터 입출력 
      윈속을 이용한 클라이언트 프로그램 작성 
      윈속을 이용한 서버 프로그램 작성 
      윈속 프로그램 컴파일 
      윈도우 서버와 리눅스 클라이언트의 통신 테스트 
5장. 파일과 소켓
   01. 모든 것은 파일이다 
      다양한 파일 종류 
      파일로서의 소켓 
      표준입력, 표준출력, 표준에러 
   02. 시스템 입출력 함수를 이용한 파일 다루기 
      파일열기 
      flag 
      파일 권한
      파일 읽기와 쓰기 
      파일 닫기 
6장. 네트워크 바이트 순서
   01. 바이트 순서에 따른 데이터 교환 문제에 대하여 
   02. 바이트 순서 알아내기 
   03. 바이트 순서 변환 
   04. 예제 프로그램 
7장. 인터넷 주소와 도메인
   01. 인터넷 주소 관리 체계 
      인터넷 주소 관리 기구 
      계층 관리 
      인터넷 주소 클래스 
      클래스 확인 예제 프로그램 
   02. 인터넷 주소 변환 
      점 표기 인터넷 주소와 IP 인터넷 주소 간의 변환 
   03. 도메인 이름 
      도메인 이름 형식 
      도메인 이름 변환 서비스 
   04. 도메인 이름 변환 
      인터넷 주소 목록 가져오기 
   05. 지역 네트워크를 위한 도메인 이름 변환 환경 만들기 
   06. 윈속 기반 인터넷 주소 및 도메인 이름 변환 
      점 표기 인터넷 주소와 인터넷 주소 간의 변환 
      도메인이름 다루기 
8장. TCP 소켓 프로그래밍
   01. 패킷 통신 
      MTU 
   02. TCP의 특징 
      TCP 헤더로 알아보는 TCP 특징 
      TCP 기반의 소켓 프로그래밍 
   03. TCP 소켓 프로그램의 장점과 단점 
   04. 패킷 내용 확인하기 
   05. 리눅스 TCP 소켓 프로그램 개발 
   06. 윈도 TCP 소켓 프로그램 개발 
   07. 테스트 
9장. UDP 소켓 프로그래밍
   01. UDP에 대해서 
      품질보다 연속성을 중시하는 서비스 
      실시간 서비스 
      TCP와 UDP 동시 사용 
   02. UDP 소켓 프로그래밍 
      UDP 소켓 생성 
      데이터 쓰기 
      데이터 읽기 
      UDP 클라이언트에서 connect 함수 사용 
   03. 리눅스 UDP 소켓 프로그래밍 
   04. 윈도우 UDP 소켓 프로그래밍 
   05. 테스트 
 
2부. 고급 네트워크 프로그래밍
10장. 멀티 프로세스 소켓 프로그래밍
   01. 프로세스란 무엇인가? 
      프로세스 identify 
   02. 멀티 프로세스 
   03. 멀티 프로세스 프로그래밍 
      fork 함수로 프로세스 복사
      execl 함수로 프로그램 실행
      fork와 execl 함수로 새로운 프로세스 실행
      자식 프로세스 기다리기 
   04. 프로세스 관계 
   05. 네트워크 프로그램과 멀티 프로세스 프로그래밍 
   06. 멀티 프로세스 기반 네트워크 프로그램 개발
   07. 다중 접속 클라이언트 처리 서버 
   08. 멀티 프로세스 기반 서버 프로그램의 장점과 단점 
   09. 윈도우 멀티 프로세스 기반 서버 프로그래밍 
   10. prefork 
11장. IPC
   01. IPC에 대해서 
      네트워크 프로그램과 IPC 
   02 PIPE(파이프) - 익명 파이프와 네임드 파이프 
      파이프 생성
      익명 파이프와 네임드 파이프 
   03. Unix Domain Socket 
      유닉스 도메인 소켓의 용도 
   04. 공유 메모리 
      공유 메모리 생성 
      공유 메모리 첨부
      공유 메모리 분리
      공유 메모리 관리 
   05. 세마포어(semaphores) 
      세마포어로 임계 영역 만들기 
      세마포어의 생성 
      세마포어 관리 
      예제 프로그램 
   06. 시그널 
      다양한 시그널 
      시그널의 기본 행동 
      명령어로 시그널 전달하기 
      시그널 함수로 시그널 제어
      대기열이 없는 시그널 
   07. 윈도 파이프 프로그래밍 
      익명 파이프 
      네임드 파이프 
      네임드 파이프로 연결 기다리기 
      네임드 파이프 종료 
      네임드 파이프 예제 프로그램 
   08. 윈도 세마포어 프로그래밍 
      세마포어 값 변환하기 
      세마포어 예제 프로그램 
   09. 윈도와 리눅스의 IPC 차이점 
12장. 고급 입출력 함수와 입출력 제어
   01. 소켓 입출력 함수를 이용한 데이터 입출력 제어 
      소켓 전용 입출력 함수 
   02. Out-of-band 통신 
      OOB 통신 방법 
      OOB 처리 소켓 프로그램 
   03. 표준 입출력 함수의 사용 
      스트림을 제어하는 표준 입출력 함수 
      파일 스트림 닫기 
      입출력 스트림에서 파일 지정번호 얻기 
      표준 입출력 예제 프로그램 
      표준 입출력 함수의 한계 
   04. 윈도우 고급 입출력 함수 
      소켓함수 
      윈속과 표준 입출력 함수 
      윈속 확장 함수 소개 
      윈속에서 oub-of-band 데이터의 처리 
      소스 설명 추가 
13장. 입출력 다중화
   01. 입출력 다중화의 개념 
      입출력 다중화의 개념 
   02. select 함수를 이용한 입출력 다중화 구현 
      select 함수를 이용한 입출력 다중화 구현 
      fd_set 관리를 위한 매크로 함수 
   03. 입출력 다중화 예제 프로그램 
   04. 소켓 프로그래밍과 입출력 다중화 기술의 융합 
   05. 입출력 다중화의 장단점과 활용
   06. 윈도 기반의 입출력 다중화 프로그래밍 
      예제 프로그램 
   07. 소켓 연결 타임 아웃 처리
      시그널을 이용한 타임 아웃 처리 
      입출력 다중화를 이용한 연결 타임 아웃 처리 
14장. 리눅스 멀티 스레드 소켓 프로그래밍
   01. 멀티 스레드 프로그래밍 
      스레드 사이의 자원 공유 
   02. 멀티 스레드 프로그래밍 
      POSIX 스레드 API 
      스레드 생성
      스레드 대기
      스레드 분리
      예제 프로그램 
   03. 멀티 스레드와 소켓 프로그래밍의 결합 
      스레드의 확인 
   04. 스레드 간 공유 자원 보호하기 
      뮤텍스와 세마포어의 차이 
      뮤텍스로 임계 영역 설정하기 
      뮤텍스 생성
      뮤텍스 잠금과 잠금 해제
      뮤텍스 사용 예제 
      스레드 대기
      조건 변수 
      조건변수 예제 프로그램 
   05. 멀티 스레드 프로그램의 장점과 단점 
      어떤 방식을 선택해야 할까? 
15장. 윈도우 멀티 스레드 소켓 프로그램 개발
   01. 윈도우 멀티 스레드 프로그래밍 기술에 대하여 
   02. 윈도우 스레드 프로그래밍 
      윈도우는 스레드에 대한 이해 
      스레드 생성과 종료 
      스레드 종료 대기 
      스레드 프로그램의 진행 흐름 
      스레드 예제 프로그램 
   03. 뮤텍스를 이용한 윈도우 스레드의 동기화 
      유저모드 동기화 
      커널 모드 동기화 
      뮤텍스 객체를 이용한 스레드 동기화 
   04. 조건 변수를 이용한 스레드 동기화 
      조건 변수의 생성과 초기화 
      조건 변수로부터 신호 대기
      조건 변수에 신호 전송
   05. 멀티 스레드 기반의 소켓 프로그램 제작 
      멀티 스레드 소켓 프로그램의 흐름 
      멀티 스레드 기반 소켓 프로그램 개발 
16장. 입출력 모델
   01. 리눅스 입출력 모델 
      봉쇄와 비봉쇄, 동기와 비동기 
      동기/봉쇄 모델 
      동기/비봉쇄 입출력 모델 
      비동기/봉쇄 입출력 모델 
      비동기/비봉쇄 모델 
   02. 윈도 입출력 모델 
      동기/봉쇄 모델 
      동기/비봉쇄 모델 
      비동기/봉쇄 모델 
      Overlapped I/O와 IOCP 
   03. 모델 선택 
17장. 리눅스 대용량 데이터 처리 기술
   01. epoll 소개 
   02. epoll 사용 
      이벤트 풀 생성 
      이벤트 풀 관리 
      이벤트 대기 
   03. epoll 네트워크 프로그래밍과의 통합 
      예제 프로그램 
   04. epoll의 장점과 단점 그리고 문제 해결 
   05. 리얼 타임 시그널을 이용한 대용량 데이터 처리 
         리얼 타임 시그널 
      리얼 타임 시그널 추가 
      리얼 타임 시그널 기다리기 
      시그널과 대기열
   06. 리얼 타임 시그널과 소켓 프로그램과의 통합 
   07. 리얼 타임 시그널의 장점과 응용 
   08. 대용량 데이터 처리를 위한 커널 설정 변경 
   09. 네트워크 프로그래밍 트랜드와 개발 방향의 선택 
18장. 윈도우 고급 네트워크 프로그래밍
   01. 윈속 확장 함수 
   02. WSAEventSelect 모델 기반의 네트워크 프로그램 개발 
      이벤트 객체 생성 
      이벤트 객체를 소켓과 묶어주기 
      이벤트 기다리기 
      이벤트 종류 알아내기 
      예제 프로그램 
   03. WSAAsyncEvent 모델 기반 네트워크 프로그램 개발 
      윈도우 객체와 메시지 처리 
      소켓 메시지를 처리할 윈도우 객체의 지정 
      예제 프로그램 
   04. 중첩 입출력 모델 
      중첩 소켓 만들기 
      중첩 소켓을 이용한 데이터 처리 
      이벤트 객체 기반 중첩 소켓 예제 
      완료 루틴 기반 중첩 소켓 예제 
19장. RPC
   01. RPC에 대해서 
   02. RPC 작동 방식 
   03. RPC 작동 환경 만들기 
   04. RPC 프로그래밍 
      XDR 필터 생성 
RPC 클라이언트 개발 
      RPC 서버 개발 
      RPC 서버 클라이언트 테스트 
      RPC 프로그램 번호를 프로그램 이름에 맵핑하기 
   05. RPC와 분산 컴퓨팅 시스템 
20장. 소켓 옵션
   01. 소켓 옵션 변경 함수 
      소켓 옵션 설정 권한 
   02. 소켓 버퍼 설정 
      슬라이딩 윈도우즈 
   03. 우아한 연결 종료 
   04. 소켓 재사용 
   05. Naggle 알고리즘 
   06. SO_LINGER를 이용한 연결 종료 방식 조정 
21장. RAW socket
   01. RAW socket이 필요할 때 
      로우 소켓 권한 
   02. ICMP 체크 프로그램 제작 
   03. 패킷 캡쳐 프로그램 제작 
   04. 윈속 기반의 로우 소켓 프로그래밍 
   05. libpcap를 이용한 패킷 캡쳐 
22장. 윈도우 IOCP 프로그래밍
   01. IOCP란 무엇인가 
      IOCP 원리 
      IOCP 지원 소켓 생성
      IOCP 흐름 
      IOCP 프로그램의 구성 
   02. IOCP 프로그램 개발 
      워커 스레드의 생성 
      입출력 완료 기다리기와 처리 
   03. IOCP 기반과 에코 서버 프로그램 
   04. IOCP의 장점과 단점 
23장. 멀티캐스팅
   01. 캐스트 
      유니캐스트 
      브로드캐스트 
      멀티캐스트 
      캐스트별 성능과 용도 
   02. 멀티캐스트의 활용과 단점 
   03. 멀티캐스트 주소 환경 
   04. 멀티캐스트 소켓 프로그래밍 
      멀티캐스트 클래스로 연결 
      소켓 옵션을 이용한 멀티캐스트 소켓 생성
      윈도우 멀티캐스트 프로그래밍 
24장. IPv6 프로그래밍
   01. IPv4의 한계 
   02. IPv6를 이용한 인터넷 인프라의 효가적 활용 
      IP 주소 부족 문제 해결 
      효율성 
      주소 자동 설정 
      이동성 
   03. IPv6 환경 만들기 
      IPv6 인터넷 주소 체계 
      IPv6 루프백 주소 
      리눅스와 IPv6 
   04. IPv6 프로그램 개발 
      소켓 구현
      IPv6용 인터넷 주소 변환 함수 
      IPv6 기반 에코 서버 프로그램 
      IPv6 기반 에코 클라이언트 프로그램 
      IPv6의 하위 호환성
   05. IPv4와 IPv6 병행 소켓 프로그램 개발 
      IPv4와 IPv6 병행 서버 개발 
      getaddrinfo 함수로 소켓 주소 정보 가져오기 
      IPv4와 IPv6 병행 서버 프로그램 
      IPv4와 IPv6 병행 클라이언트 프로그램 개발 
   06. 윈도우 IPv6 프로그래밍 
      윈도우 IPv6 환경 구현
      윈도우 IPv6 기반 프로그램 개발 
      마치며 
25장. 인터넷 서비스 프로그램 개발
   01. 리눅스 데몬 프로그램 
      부모 프로세스로부터 독립시키기 
   02. 인터넷 서비스 데몬 
      인터넷 서비스 데몬 기반 인터넷 프로그램 개발 
      인터넷 서비스 데몬의 장단점 
      인터넷 서비스 데몬 프로그래밍 기법의 응용
 
3부. 실전 네트워크 프로그래밍
26장. 파일 전송 프로그램 개발
   01. 서비스 프로그램 구성 
   02. 서비스 프로그램 개발 준비 
      프로그램 명세서 
      DB 명세서 
      애플리케이션 프로토콜 
   03. SQLite DB 
      SQLite 설치 
      DB와 테이블 생성
      주요 SQLite 함수 
   04. 서버 프로그램 개발 
      proc 함수 
   05. 클라이언트 프로그램 개발 
27장. 웹서버 개발
   01. 웹 서비스를 위한 프로토콜 - HTTP와 HTML 
      HTTP 프로토콜의 기본 
      웹서버 프로그램 개발 
   02. 서버 프로그램 개발 
      기능 정의 
      main 함수 
      webserv 함수 
      sendpage 함수 
      protocol_parser 함수 
   03. 테스트 
      마치며 
28장. 클라우드 시대의 네트워크 프로그래밍 소개
   01. 모바일 시대의 네트워크 프로그래밍 소개 
      모바일 시대의 네트워크 프로그래밍 
      모바일 시대와 웹 
   02. 분산 처리 시스템 소개 
      분산 처리 시스템 
      분산 처리 시스템의 구성 
      분산 처리 시스템의 구현 소개
      분산 처리 시스템 구현 소개
에필로그
   01. 공부한 것들 
   02. 공부할 것들 
      OS의 선택 
      언어의 선택 
부록 A. 테스트용 클라이언트 프로그램
   01. 리눅스용 에코 클라이언트 프로그램 
   02. 리눅스용 채팅 클라이언트 프로그램 
   03. 윈도용 에코 클라이언트 프로그램 
   04. 윈도용 채팅 클라이언트 프로그램 
부록 B. Virtualbox로 가상화 환경 만들기
   01. Virtualbox 설치 
   02. 리눅스 호스트에서 윈도를 게스트 운영체제로 설치하기 
      게스트 확장 설치하기 
      네트워크 환경 만들기 
      리눅스 네트워크 환경 
      윈도우 네트워크 환경 
   03. 윈도우 호스트에 리눅스 게스트 설치하기 
부록 C. 우분투 리눅스 설치
부록 D. UDP 소켓 프로그래밍
   01. 쉬운 포팅을 염두에 둔 개발 
      포팅 
      포터빌리티 
      BSD 소켓 기반의 개발 
      전처리문의 이용 
   02. cygwin을 이용한 프로그램 재사용 
      cygwin의 설치 
      리눅스 프로그램 컴파일 
   03. QT 툴킷
   04. ACE
 
찾아보기

  • 첫번째 리뷰어가 되어주세요.
  • 결제하기
    • 문화비 소득공제 가능
    • 배송료 : 2,000원배송료란?

    배송료 안내

    • 20,000원 이상 구매시 도서 배송 무료
    • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

    무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

    닫기

    리뷰쓰기

    닫기
    * 도서명 :
    뇌를 자극하는 TCP/IP 소켓 프로그래밍
    * 제목 :
    * 별점평가
    * 내용 :

    * 리뷰 작성시 유의사항

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

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

    오탈자 등록

    닫기
    * 도서명 :
    뇌를 자극하는 TCP/IP 소켓 프로그래밍
    * 구분 :
    * 상품 버전
    종이책 PDF ePub
    * 페이지 :
    * 위치정보 :
    * 내용 :

    도서 인증

    닫기
    도서명*
    뇌를 자극하는 TCP/IP 소켓 프로그래밍
    구입처*
    구입일*
    부가기호*
    부가기호 안내

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

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

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

    닫기

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

    자료실