MARC 닫기
00715nam a2200217 c 4500
000000622626
20131101122031
131101s2011 ulkd 001 kor
▼a 9788979148046
▼g 13000:
▼c ₩28,000
▼l RM0000000405
▼a 004.62
▼a 004.62
▼b 윤52ㅌ
▼a 윤상배
▼a (뇌를 자극하는) TCP/IP 소켓 프로그래밍=
▼x TCP/IP Socket Programming/
▼d 윤상배 지음.
▼a 서울:
▼b 한빛미디어,
▼c 2011.
▼a [728] p.:
▼b 챠트;
▼c 26 cm.
▼a 부록: A. 테스트용 클라이언트 프로그램, B. Virtualbox 가상화 환경 구축 외 수록
▼a 색인: p. [718-728]
▼a 소켓
▼a 프로그래밍
▼a TCP/IP
▼a 뇌를 자극하는 티씨피아이피 소켓 프로그래밍
▼b \28000
▼a 단행본
▼a 004.62
▼b 윤52ㅌ
저자 서문
인터넷 강의에 대한 안내
학습 로드맵
이 책을 보는 방법
part 1. 소켓 네트워크 프로그래밍
1장. 네트워크와 TCP/IP
01. 컴퓨터 네트워크의 역사
네트워크 프로그램이란?
네트워크의 출현과 진화
컴퓨터의 네트워크 인터넷의 등장
02. 인터넷의 출현과 성장
군사 목적에서 시작된 인터넷
인터넷의 발단
인터넷의 성장
03. 인터넷을 달리는 TCP/IP
04. 인터넷 내비게이션 - IP
05. 인터넷 데이터 배달 - TCP
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. 시스템 입출력 함수를 이용한 파일 다루기
파일열기
플래그
파일 권한
파일 읽기와 쓰기
파일 닫기
setrlimit 함수를 이용한 프로세스 자원 값 확인과 변경
03. 파일 복사 프로그램
6장. 네트워크 바이트 순서
01. 바이트 순서에 따른 데이터 교환 문제
02. 바이트 순서 알아내기
03. 바이트 순서 변환
04. 예제 프로그램
7장. 인터넷 주소와 도메인
01. 인터넷 주소 관리 체계
인터넷 주소 관리 기구
계층 관리
인터넷 주소 클래스
클래스 확인 예제 프로그램
02. 인터넷 주소 변환
점 표기 인터넷 주소와 IP 인터넷 주소 간의 변환
03. 도메인 이름
도메인 이름 형식
도메인 이름 변환 서비스
04. 도메인 이름 변환
인터넷 주소 목록 가져오기
05. 지역 네트워크를 위한 도메인 이름 변환 환경 구축
06. 윈속 기반 인터넷 주소 및 도메인 이름 변환
점 표기 인터넷 주소와 인터넷 주소 간의 변환
도메인이름 다루기
8장. TCP 소켓 프로그래밍
01. TCP와 패킷 통신
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. 테스트하기
part 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. 유닉스 도메인 소켓
유닉스 도메인 소켓의 용도
04. 공유 메모리
공유 메모리 생성
공유 메모리 첨부와 분리하기
공유 메모리 관리
05. 세마포어
세마포어로 임계 영역 만들기
세마포어의 생성과 관리
예제 프로그램
06. 시그널
다양한 시그널
시그널의 기본 행동
시그널 함수를 이용해서 시그널 제어하기
대기열이 없는 시그널
07. 윈도 파이프 프로그래밍
익명 파이프
네임드 파이프
네임드 파이프로 연결 기다리기
네임드 파이프 예제 프로그램
08. 윈도 세마포어 프로그래밍
세마포어 값 변환하기
세마포어 예제 프로그램
09. 윈도와 리눅스의 기타 IPC 설비
12장. 고급 입출력 함수와 입출력 제어
01. 소켓 입출력 함수를 이용한 데이터 입출력 제어
소켓 전용 입출력 함수
02. OOB 통신
OOB 통신 방법
OOB 처리 소켓 프로그램
03. 표준 입출력 함수
스트림을 제어하는 표준 입출력 함수
파일 지정번호로부터 파일 스트림 가져오기
표준 입출력 예제 프로그램
표준 입출력 함수의 한계
04. 윈도우 고급 입출력 함수
소켓 함수
윈속과 표준 입출력 함수
윈속 확장 함수 소개
윈속에서 OOB 데이터 처리
마치며
13장. 입출력 다중화
01. 입출력 다중화란?
02. 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. 윈도우 입출력 모델
동기/봉쇄 모델
동기/비봉쇄 모델
비동기/봉쇄 모델
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. 윈속 RAW Socket 프로그래밍
05. libpcap를 이용한 패킷 캡처
22장. 윈도우 IOCP 프로그래밍
01. IOCP란?
IOCP 원리
IOCP 지원 소켓 생성
IOCP 프로그램의 구성
02. IOCP 프로그램 개발
워커 스레드의 생성
입출력 완료 기다리기와 처리
03. IOCP 기반과 에코 서버 프로그램
04. IOCP의 장점과 단점
23장. 멀티캐스팅
01. 캐스트
유니캐스트
브로드캐스트
멀티캐스트
캐스트별 성능과 용도
02. 멀티캐스트의 활용과 단점
03. 멀티캐스트 주소 환경
04. 멀티캐스트 소켓 프로그래밍
멀티캐스트 클래스로 연결
소켓 옵션을 이용한 멀티캐스트 소켓 만들기
윈도우 멀티캐스트 프로그래밍
24장. IPv6 프로그래밍
01. IPv4의 한계
02. IPv6를 이용한 인터넷 인프라의 효과적 활용
IP 주소 부족 문제 해결
효율성
주소 자동 설정
이동성
06. IPv6 환경 만들기
IPv6 인터넷 주소 체계
리눅스와 IPv6
04. IPv6 프로그램 개발
소켓 구현
IPv6용 인터넷 주소 변환 함수
IPv6 기반 에코 서버 프로그램
IPv6 기반 에코 클라이언트 프로그램
05. IPv4와 IPv6 병행 소켓 프로그램 개발
IPv4와 IPv6 병행 서버 개발
getaddrinfo 함수로 소켓 주소 정보 가져오기
IPv4와 IPv6 병행 서버 프로그램
IPv4와 IPv6 병행 클라이언트 프로그램 개발
06. 윈도우 IPv6 프로그래밍
윈도우 IPv6 환경 구현
윈도우 IPv6 기반 프로그램 개발
25장. 인터넷 서비스 프로그램 개발
01. 리눅스 데몬 프로그램
부모 프로세스로부터 독립시키기
02. 인터넷 서비스 데몬
인터넷 서비스 데몬 기반 인터넷 프로그램 개발
인터넷 서비스 데몬의 장단점
인터넷 서비스 데몬 프로그래밍 기법의 응용
part 3. 실전 네트워크 프로그래밍
26장. 파일 전송 프로그램 개발
01. 서비스 프로그램 구성
02. 서비스 프로그램 개발 준비
프로그램 명세서
DB 명세서
애플리케이션 프로토콜
03. SQLite DB
SQLite 설치
DB와 테이블 생성
주요 SQLite 함수
04. 서버 프로그램 개발
05. 클라이언트 프로그램 개발
27장. 웹서버 개발
01. HTTP와 HTML
HTTP 프로토콜의 기본
웹서버 프로그램 개발
02. 서버 프로그램 개발
기능 정의
웹서버 프로그램 myserver.c
03. 테스트
28장. 클라우드 시대의 네트워크 프로그래밍 소개
01. 모바일 시대의 네트워크 프로그래밍 소개
모바일 시대의 네트워크 프로그래밍
모바일 시대와 웹
02. 분산 처리 시스템 소개
분산 처리 시스템
분산 처리 시스템의 구성
분산 처리 시스템의 소개
분산 처리 시스템 구현 소개
에필로그
01. 공부한 것들
02. 공부할 것들
OS의 선택
언어의 선택
부록 A. 테스트용 클라이언트 프로그램
01. 리눅스용 에코 클라이언트 프로그램
02. 리눅스용 채팅 클라이언트 프로그램
03. 윈도우용 에코 클라이언트 프로그램
04. 윈도우용 채팅 클라이언트 프로그램
부록 B. Virtualbox로 가상화 환경 만들기
01. Virtualbox 설치
02. 리눅스 호스트에서 윈도우 게스트 설치
게스트 확장 설치하기
네트워크 환경 만들기
리눅스 네트워크 환경
윈도우 네트워크 환경
03. 윈도우 호스트에 리눅스 게스트 설치
부록 C. 우분투 리눅스 설치
부록 D. 포터빌리티와 개발 툴
01. 쉬운 포팅을 염두에 둔 개발
포팅
포터빌리티
BSD 소켓 기반의 개발
전처리문의 이용
02. cygwin을 이용한 프로그램 재사용
cygwin의 설치
리눅스 프로그램 컴파일
03. QT 툴킷
04. ACE
찾아보기
바이브 코딩 혁명이 온다 : AI 에이전트와 제로 코드 소사이어티의 탄생
005.133 김73ㅂ
(맥스 테그마크의) 라이프 3.0 : 인공지능이 열어갈 인류와 생명의 미래
006.301 T261ㄹ백
(2025) SQLD 모든 것 : #SQLD 14일 합격
005.7585 아68s
인문의 재발견
001.3 안73ㅇ
서평쓰기