책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 네트워크 프로그래밍
· ISBN : 9788989345015
· 쪽수 : 608쪽
책 소개
목차
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 클라이언트 프로그램의 구현