第1章 网络编程基础 1
1.1引言 1
1.2计算机网络发展历史 3
1.3开放式系统互连参考模型(OSI/RM) 4
1.3.1 OSI/RM概述 5
1.3.2 OSI/RM的成功与失败 5
1.4国际互联网(Internet)的体系结构 7
1.5互联网和TCP/IP协议的相关基础 8
1.5.1 IP地址及其表示方法 8
1.5.2 IP地址转换 11
1.5.3域名解析系统DNS 13
1.5.4 IP地址分配和域名管理 14
1.6 IPv6的启用 16
1.6.1 IPv6的优势 16
1.6.2 IPv4向IPv6的过渡 17
1.7网络通信程序编程 17
1.7.1互联网在当今信息社会中的角色 17
1.7.2面向互联网的网络程序编程 19
1.7.3网络通信程序的开发调试方法 20
1.8本书的内容侧重和默认约定 21
小结 22
思考与练习 22
第2章 Linux系统套接字编程 23
2.1引言 23
2.2套接字简介 26
2.2.1 Socket的历史 26
2.2.2 Socket定义及基本概念 27
2.2.3 Socket的类型 28
2.3套接字编程相关基础 29
2.3.1套接字数据类型 29
2.3.2本机字节顺序和网络字节顺序 30
2.4 Socket的工作一般步骤 31
2.4.1 TCP的三次握手建立连接 32
2.4.2 TCP的四次握手释放连接 32
2.5基本套接字函数介绍 33
2.5.1套接字函数功能分类 33
2.5.2 IPv4和IPv6套接字函数的差别 34
2.6基本套接字函数使用说明 36
2.7基本数据读写套接字函数 40
2.8高级数据发送和接收套接字函数 42
2.9其他Socket系统调用 48
2.10阻塞和非阻塞 49
2.11原始套接字编程 50
2.12 Socket应用实例 54
小结 62
思考与练习 62
第3章 Windows套接字编程 63
3.1引言 63
3.2 Windows Sockets概述 63
3.3 Winsock提供的函数调用 64
3.3.1基本套接口函数 64
3.3.2针对Microsoft Windows的扩展函数 64
3.4 Winsock对BSD Socket的扩充 65
3.5 Winsock 1.1扩展的主要函数介绍 69
3.6 Winsock 2.0的扩充功能 75
3.7 Winsock编程实例 80
小结 84
思考与练习 84
第4章 应用层网络程序编程 85
4.1引言 85
4.2.NET Framework概述 85
4.3 C#编程基础 88
4.3.1网络编程中的常用类 88
4.3.2 C#网络套接字编程 89
4.3.3 .NET中的进程与线程 90
4.3.4 .NET中的Socket类 93
4.4 C#的TCP编程 97
4.4.1 TcpClient类 97
4.4.2 TcpListener类 98
4.5 C#的UDP编程 100
4.5.1 UdpClient类 100
4.5.2多播编程 102
4.6基于C#的E-mail应用编程 103
4.6.1 SMTP协议编程 105
4.6.2 POP3协议编程 109
4.6.3 IMAP4协议概述 110
4.7基于C#的FTP应用编程 113
4.7.1 FTP概述 113
4.7.2 FTP编程方法 117
4.8基于C#的HTTP客户端编程 122
4.8.1 HTTP原理概述 122
4.8.2 HTTP客户端编程方法 126
4.9基于C#的网络编程实例 127
小结 134
思考与练习 134
第5章 网络底层编程技术 135
5.1引言 135
5.2基于Libpcap的网络编程 135
5.2.1 Libpcap概述 135
5.2.2 Libpcap库函数与数据结构 136
5.2.3 Libpcap的应用实例 140
5.3基于Winpcap的网络编程 141
5.3.1 Winpcap简介 141
5.3.2 Winpcap的结构 142
5.3.3 packet.dll的相关数据结构及函数 143
5.3.4 wpcap.dll的相关数据结构及函数 147
5.4基于NDIS的网络编程 151
5.4.1 Windows网络体系结构 152
5.4.2 NDIS规范概述 152
5.4.3 NDIS小端口驱动程序 154
5.4.4 NDIS中间层驱动程序 154
5.5网络数据报捕获编程实例 158
小结 161
思考与练习 161
第6章 流媒体编程技术 162
6.1引言 162
6.2流媒体概述 163
6.2.1实时流协议(RTSP) 163
6.2.2多媒体服务协议(MMS) 168
6.2.3流媒体文件的压缩格式 168
6.3 VLC软件简介 170
6.3.1 VLC主要技术特点 170
6.3.2 VLC视频播放的基本原理 170
6.3.3 VLC的动态调用 172
6.4流媒体编程实例 174
小结 178
思考与练习 178
第7章 网络安全编程 179
7.1 SSL概述 179
7.2 SSL的设计目标 179
7.3 SSL与TCP/ IP协议层 180
7.4 SSL协议体系结构 181
7.5 OpenSSL编程概述 184
7.6 SSL编程示例 186
小结 195
思考与练习 195
参考文献 196