목차
1장 개요
1.1 TCP/IP 모델 = 1
1.1.1 응용 계층(Application Layer) = 3
1.1.2 전송 계층(Transport Layer) = 4
1.1.3 인터넷 계층(Internet Layer) = 4
1.1.4 링크 계층(Link Layer) = 4
1.2 프로토콜과 포트 = 5
1.2.1 일반적인 프로토콜 = 5
1.2.2 포트 번호 = 5
1.3 IP 주소지정 스키마 = 7
1.3.1 IPv5 = 8
1.3.2 IPv5 = 9
1.3.3 도메인 네임 시스템(DNS, Domain Name System) = 11
1.4 클라이언트/서버 모델 = 12
1.5 소켓 = 13
1.5.1 기본 개념 = 13
1.5.2 Winsock = 14
1.6 .NET 소켓 클래스 = 16
1.7 요약 = 17
1.8 연습문제 = 17
2장 소켓 프로그래밍
2.1 개요 = 19
2.2 프로젝트 생성 = 19
2.2.1 Visual Studio 2008 사용하기 = 20
2.2.2 Visual Studio C# 2008 Express Edition 사용하기 = 22
2.2.3 통합 개발환경 인터페이스 = 23
2.3 서버 소켓 = 26
2.3.1 소켓 클래스를 사용하는 서버 = 26
2.3.2 Echo 서버 = 30
2.4 클라이언트 소켓 = 33
2.4.1 소켓 클래스를 사용하는 클라이언트 = 33
2.4.2 Echo 클라이언트 = 33
2.5 소켓 프로그램 실행 = 35
2.5.1 컴파일과 빌드 = 35
2.5.2 IDE에서 프로그램 실행 = 37
2.5.3 명령프롬프트에서의 프로그램 실행 = 40
2.6 추적과 디버깅 = 41
2.6.1 디버깅 도구와 인터페이스 = 41
2.6.2 처리 흐름 추적 = 43
2.7 소켓 클래스 메서드 = 46
2.8 소켓 오류 = 48
2.9 IP 주소 = 52
2.9.1 바이트 정렬 = 52
2.9.2 현재 호스트 IP 주소 = 54
2.9.3 DNS를 이용한 IP 주소 검색 = 55
2.9.4 클라이언트의 IP 주소 얻기 = 56
2.10 요약 = 60
2.11 연습문제 = 60
3장 TCP 소켓
3.1 TCP의 개념 = 63
3.1.1 개요 = 63
3.1.2 연결 지향형 소켓 = 64
3.1.3 TCP 소켓 프로세스 흐름 = 66
3.2 TCP 서버 = 69
3.2.1 TcpListener 클래스를 이용한 서버 = 69
3.2.2 Echo 서버 = 70
3.3 TCP 클라이언트 = 72
3.3.1 TcpClient 클래스를 이용한 클라이언트 = 72
3.3.2 NetworkStream 클래스를 이용한 데이터 전송 = 73
3.3.3 Echo 클라이언트 = 74
3.4 데이터 인코딩 = 76
3.5 TCP 소켓을 이용한 프로그램 = 82
3.5.1 대문자 변환 프로그램 = 82
3.5.2 간단한 채팅 프로그램 = 86
3.5.3 파일 전송 프로그램 = 91
3.6 요약 = 98
3.7 연습문제 = 98
4장 멀티 스레드 소켓
4.1 스레드 개념 = 101
4.2 .NET에서의 스레딩 = 102
4.2.1 스레드 생성 = 103
4.2.2 스레딩 예제 = 104
4.3 스레드 동기화 = 106
4.3.1 경쟁 상태 = 107
4.3.2 동기화 예제 = 109
4.4 멀티 스레드 소켓 = 115
4.4.1 소켓에서 스레딩 사용 = 116
4.4.2 멀티 스레드 Echo 서버 = 117
4.4.3 멀티 스레드 소켓 실행 = 119
4.5 응용 예제 = 119
4.6 요약 = 126
4.7 연습문제 = 126
5장 UDP 소켓
5.1 UDP 개념 = 127
5.1.1 개요 = 127
5.1.2 TCP와의 차이점 = 128
5.1.3 UDP 프로세스 흐름 = 129
5.2 UdpClient 클래스 = 130
5.3 UDP Echo 프로그램 = 132
5.3.1 UDP Echo 서버 = 132
5.3.2 UDP Echo 클라이언트 = 134
5.4 Socket 클래스를 이용한 UDP = 135
5.5 브로드캐스팅 = 140
5.5.1 브로드캐스트 Sender = 140
5.5.2 브로드캐스트 Receiver = 142
5.6 멀티캐스팅 = 144
5.6.1 멀티캐스트 Sender = 145
5.6.2 멀티캐스트 Receiver = 146
5.7 요약 = 148
5.8 연습문제 = 149
6장 네트워크 프로토콜
6.1 개요 = 151
6.2 HTTP(Hypertext Transfer Protocol) = 152
6.2.1 HTTP 요청 = 152
6.2.2 HTTP 응답 = 154
6.2.3 HTTP 클라이언트 = 156
6.3 SMTP(Simple Mail Transfer Protocol) = 162
6.3.1 SMTP 명령 = 162
6.3.2 SMTP 응답 = 163
6.3.3 SMTP 클라이언트 = 164
6.4 POP3(Post Office Protocol Version 3) = 171
6.4.1 POP3 명령 = 171
6.4.2 POP3 응답 = 172
6.4.3 POP3 클라이언트 = 173
6.5 FTP(File Transfer Protocol) = 181
6.5.1 FTP 명령 = 182
6.5.2 FTP 응답 = 184
6.5.3 FTP 클라이언트 = 184
6.6 요약 = 197
6.7 연습문제 = 198
7장 그래픽 유저 인터페이스
7.1 개요 = 199
7.2 비동기 소켓 = 199
7.3 윈도 폼 = 204
7.3.1 폼 생성 = 205
7.3.2 윈도 컴포넌트 추가하기 = 205
7.4 Echo 서버 GUI = 207
7.4.1 폼 디자인 = 207
7.4.2 코딩 = 210
7.5 Echo 클라이언트 GUI = 216
7.5.1 폼 디자인 = 216
7.5.2 코딩 = 220
7.6 SMTP 클라이언트 GUI = 225
7.6.1 폼 디자인 = 225
7.6.2 코딩 = 230
7.7 요약 = 239
7.8 연습문제 = 239
8장 고급 개념
8.1 소켓 옵션 = 241
8.2 소켓 예외 = 248
8.3 로깅 = 250
8.3.1 NLog = 251
8.3.2 파일 로깅 예제 = 254
8.4 요약 = 264
8.5 연습문제 = 264