서브메뉴
검색
본문
Powered by NAVER OpenAPI
-
예제로 배우는 리눅스 소켓 프로그래밍
저자 : 워렌 W. 게이
출판사 : 인포북
출판년 : 2004
정가 : 22000, ISBN : 8980545258
책소개
소켓 프로그래밍 입문서의 바이블이라고 할수 있는 이 책은, 소켓의 기본 개념부터 다양한 용도의 서버 프로그램을 작성하기 위한 I/O 모델을 포함하여 보안의 개념까지 상당히 넓은 개념을 포함하고 있다. 또한, 소켓 프로그래밍을 수행하면서 어려움을 겪기 쉬운 에러 처리나 중요한 개념을 자세하게 나열하고 있다. 이 책을 처음부터 끝까지 읽고 나면 웬만한 네트워킹 모듈은 크게 어렵지 않게 작성할 수 있을 것이다. 물론, 서버 및 클라이언트의 고급 통신 아키텍처나 디자인은 여러분의 도전적인 과제로 남아 있다.
여러분이 어떤 주제에 생소하다면 그것을 배울 수 있는 가장 좋은 방법은 명백하고 간결한 예제를 따라해 보는 것이다. "예제로 배우는" 시리즈는 논리적이고 선형적인 교육 진도를 따르고 있으며 작고 순차적인 단계를 통하여 여러분이 배우고자 하는 커다란 그림을 제시해주고 있다.
목차
용어 대역표
introduction
Part 1 기본적인 소켓 개념
Chapter 1 소켓의 개요
간략한 역사적 개요
소켓 이해하기
소켓과 파이프 비교하기
소켓 생성하기
소켓에 대해 I/O 수행하기
소켓 닫기
클라이언트 / 서버 예제 제작
Chapter 2 도메인과 주소 패밀리
이름이 없는 소켓
도메인 이해하기
소켓 주소 만들기
로컬 주소 만들기
인터넷(IPv4) 소켓 주소 만들기
X.25 주소 지정하기
다른 주소 패밀리 지정하기
AF_UNSPEC 주소 패밀리
Chapter 3 주소 변환 함수
인터넷 IP 번호
IP 주소 할당하기
IP 번호 조작하기
Chapter 4 소켓 형식과 프로토콜
소켓의 도메인 지정하기
socket(2) 함수 사용하기
소켓 형식 선택하기
프로토콜 선택하기
소켓 도메인과 형식 요약
리눅스가 지원하는 다른 프로토콜
Chapter 5 주소를 소켓에 바인드하기
bind(2) 함수의 용도
bind(2) 함수 사용하기
소켓 주소 구하기
인터페이스와 주소
Chapter 6 비연결 지향 프로토콜
통신 방법
데이터그램의 입력/출력 수행하기
UDP 데이터그램 서버 만들기
UDP 데이터그램 클라이언트 작성하기
데이터그램 클라이언트와 서버 테스트하기
Chapter 7 클라이언트를 위한 연결 지향 프로토콜
통신 방법 복습
인터넷 서비스
/etc/protocols 파일 참조하기
TCP/IP 클라이언트 프로그램 작성하기
SOCK_DGRAM 소켓에 대해 connect(2) 사용하기
Chapter 8 서버를 위한 연결 지향 프로토콜
서버의 역할 이해하기
listen(2) 함수
accept(2) 함수 호출
TCP/IP 서버 작성하기
클라이언트 프로그램 수정하기
Chapter 9 호스트 이름과 네트워크 이름 조회
이름의 필요성 이해하기
uname(2) 함수 사용하기
호스트 이름과 도메인 이름 구하기
원격 주소 확인하기
Part 2 고급 소켓 프로그래밍
Chapter 10 소켓에 표준 I/O 사용하기
표준 I/O의 필요성 이해하기
소켓을 스트림에 연결하기
소켓 스트림 닫기
읽기 스트림과 쓰기 스트림을 별도로 사용하기
통신 끝내기
인터럽트 처리하기
버퍼 연산 정의
FILE 스트림을 소켓에 적용하기
Chapter 11 동시 클라이언트 서버
다중 클라이언트 문제 이해하기
서버 함수의 개요
다중 클라이언트를 처리하기 위해 fork(2) 사용하기
select(2)를 사용하는 서버 디자인하기
select(2)를 서버에 적용하기
Chapter 12 소켓 옵션
소켓 옵션 구하기
소켓 옵셜 설정하기
소켓 형식(SO_TYPE) 구하기
SO_REUSEADDR 옵션 설정하기
SO_LINGER 옵션 설정하기
SO_KEEPALIVE 옵션 설정하기
SO_BROADCAST 옵션 설정하기
SO_OOBINLINE 옵션 설정하기
SO_PASSCRED 옵션과 SO_PEERCRED 옵션
Chapter 13 UDP를 사용하여 브로드캐스트하기
브로드캐스트 주소 이해하기
서버에서 브로드캐스트하기
브로드캐스트 받기
브로드캐스트 테스트하기
네트워크로 브로드캐스트하기
Chapter 14 Out-of-Band 데이터
Out-of-Band의 정의
Out-of-Band 데이터의 필요성
소켓과 Out-of-Band 데이터
구현상의 변형
Out-of-Band 데이터 사용하기
긴급 포인터 이해하기
Out-of-Band 데이터를 인라인으로 수신하기
긴급 모드 포인터의 한계
Chapter 15 inetd 데몬 사용하기
대부분의 서버에게 공통적인 단계
inetd의 개요
간단한 스트림 tcp 서버 구현하기
inetd를 사용하는 데이터그램 서버
Chapter 16 네트워크 보안 프로그래밍
보안의 정의
보안의 다양성
아군과 적군 구별하기
inetd 서버 보안
래퍼와 서버 프로그램 설치하기
클라이언트 프로그램의 개요
래퍼 설치하고 테스트하기
Chapter 17 자격 증명(credential)과 파일 설명자 전달하기
문제 설명
보조 데이터의 개요
I/O 벡터의 개요
sendmsg(2)와 recvmsg(2) 함수
보조 데이터 구조체와 매크로
보조 데이터 예제
소켓 서버 테스트하기
Chapter 18 실제 네트워크 프로젝트
문제 제기
주식 시세 서비스 문제 해결
시세 서버 프로그램 살펴보기
get_tickinfo()를 사용하여 시세 정보 가져오기
broadcast()를 통하여 시세 브로드캐스트하기
클라이언트 프로그램 살펴보기
데모 프로그램 컴파일하고 실행하기
Part 3 부록
Appendix A 소켓 함수 요약 참조
Appendix B 소켓 관련 구조체 참조
Appendix C 유용한 네트워크 표
용어 정리
찾아보기