第1章 绪论 1
1.1 网络应用开发基础 1
1.1.1 TCP/IP协议 1
1.1.2 套接字 2
1.1.3 网间进程通信的标识 3
1.2 网络通信应用模型 4
1.2.1 集中应用模型 4
1.2.2 客户机/服务器应用模型 5
1.2.3 基于Web的浏览器/服务器应用模型 7
1.2.4 P2P应用模型 7
1.2.5 云计算应用模型 8
1.3 C#网络编程概述 10
1.3.1 常用的网络组件 10
1.3.2 寻找IP地址的类和方法 11
1.3.3 数据流的类型与应用 12
1.3.4 多线程技术 14
1.3.5 Windows API函数调用 17
1.4 加密技术 18
1.4.1 对称加密算法与程序设计 18
1.4.2 非对称加密算法与程序设计 26
实验题 33
第2章 基于TCP协议的程序设计 35
2.1 基于TCP协议的编程模型 35
2.1.1 TCP协议编程特点 35
2.1.2 面向连接的套接字调用流程 36
2.2 流式套接字的基本函数与应用 37
2.3 阻塞/非阻塞模式及其应用 41
2.3.1 典型的阻塞模式 42
2.3.2 阻塞模式的特点 42
2.3.3 阻塞模式的效率提升方法 43
2.3.4 非阻塞模式及其应用 44
2.4 同步套接字编程技术 45
2.5 异步套接字编程技术 54
2.6 基于TcpCIient类和TcpListener类的编程技术 56
2.6.1 TcpClient类的使用方法 57
2.6.2 TcpListener类的使用方法 58
实验题 59
第3章 基于UDP协议的程序设计 61
3.1 基于UDP协议的编程模型 61
3.1.1 UDP协议 61
3.1.2 无连接的套接字调用流程 62
3.1.3 数据报套接字的基本函数与应用 63
3.2 使用UdpClient类进行编程 64
3.2.1 UdpClient类的使用方法 64
3.2.2 UdpClient类的应用实例 66
3.3 网络广播程序设计 69
3.3.1 广播程序设计示例 70
3.3.2 套接字选项设置方法 71
3.4 多播程序设计 72
3.4.1 多播地址 72
3.4.2 互联网组管理协议(IGMP) 73
3.4.3 多播编程方法 74
3.4.4 多播编程实例 76
实验题 80
第4章 网络扫描程序设计 81
4.1 活动主机探测技术 81
4.1.1 ICMP协议介绍 82
4.1.2 基于ICMP的探测原理 83
4.1.3 活动主机探测程序设计 83
4.2 端口扫描技术 89
4.2.1 端口扫描器 90
4.2.2 端口扫描技术分类 90
4.3 TCP全连接扫描程序设计 94
4.3.1 设计思路 94
4.3.2 常规扫描程序实现 94
4.3.3 多线程扫描程序实现 96
4.4 高级端口扫描程序设计 98
4.4.1 界面设计 99
4.4.2 程序实现 99
实验题 112
第5章 网络抓包程序设计 115
5.1 网络抓包软件体系结构分析 115
5.1.1 网络抓包技术分析 115
5.1.2 WinPcap的体系结构 116
5.2 基于WinPcap的抓包程序设计 117
5.2.1 WinPcap编程基础 117
5.2.2 WinPcap应用实例 121
5.3 基于SharpCap的抓包程序设计 127
5.3.1 SharpPcap应用入门 127
5.3.2 常用数据结构和函数 129
5.4 基于原始套接字的抓包程序设计 131
5.4.1 设计实例说明 131
5.4.2 关键代码分析 132
实验题 136
第6章 木马程序设计 137
6.1 木马工作原理 137
6.1.1 木马系统的组成 137
6.1.2 木马的功能和特征 138
6.1.3 木马的传播与运行 138
6.2 木马程序的常规设计 139
6.2.1 功能设计 139
6.2.2 系统设计 139
6.3 木马程序设计 140
6.3.1 系统设计 140
6.3.2 运行界面及说明 141
6.3.3 主要程序说明 142
6.4 远程屏幕监视技术 146
6.4.1 屏幕捕获过程解析 147
6.4.2 屏幕捕获程序设计 149
6.4.3 基于远程调用信道的远程屏幕监视程序设计 152
6.5 基于TCP协议的远程屏幕监视程序设计 162
6.5.1 控制端程序设计 162
6.5.2 客户端程序设计 164
6.6 键盘鼠标控制程序设计 167
6.6.1 键盘鼠标控制方法 167
6.6.2 键盘钩子说明 167
6.6.3 键盘鼠标的网络控制程序设计 169
实验题 175
第7章 邮件收发与拦截程序设计 177
7.1 E-mail系统概述 177
7.1.1 工作原理 177
7.1.2 相关的协议 178
7.2 SMTP协议编程 179
7.2.1 SMTP的指令与响应码 179
7.2.2 E-mail的组成 180
7.2.3 ESMTP的工作流程 181
7.2.4 ESMTP协议编程实例 182
7.3 POP3协议编程 187
7.3.1 POP3的工作流程 187
7.3.2 POP3协议编程 188
7.4 利用SmtpMail类发送E-mail 193
7.4.1 System.Web.Mail介绍 193
7.4.2 处理E-mail信息及附件 195
7.4.3 E-mail发送方法 196
7.5 利用JMail类收发E-mail 197
7.5.1 JMail组件的特点 197
7.5.2 JMail组件的主要参数与使用方法 197
7.5.3 基于JMail组件的E-mail发送编程 199
7.5.4 基于JMail组件的E-mail接收编程 200
实验题 203
第8章 网络视频传输程序设计 205
8.1 视频编码技术 205
8.2 基于VFW的视频采集与存储 207
8.2.1 VFW功能描述 208
8.2.2 视频数据处理技术 209
8.2.3 视频监控程序设计 214
8.3 基于VFW的视频传输 217
8.3.1 视频传输流程 217
8.3.2 视频发送端程序设计 219
8.3.3 视频接收端程序设计 222
实验题 225
第9章 IP音频通信程序设计 227
9.1 音频编程方法概述 227
9.2 基于多媒体控件的音频播放程序设计 228
9.3 DirectX组件的工作原理 229
9.3.1 DirectX的组成 230
9.3.2 DirectSound简介 231
9.3.3 声音的播放过程 232
9.4 基于DirectX组件的IP语音网络程序设计 233
9.4.1 利用DirectX组件实现音频播放 233
9.4.2 利用DirectX组件实现音频采集 234
9.4.3 基于DirectX组件的IP电话程序设计 243
实验题 251
第10章 异构系统的网络通信程序设计 253
10.1 异构系统的网络通信技术分析 253
10.1.1 异构系统的网络通信概念 253
10.1.2 虚拟机与主机网络配置 254
10.2 Linux系统的网络编程技术 256
10.2.1 Linux系统的网络编程基础 256
10.2.2 基于TCP协议的网络聊天编程实例 260
10.3 Linux和Windows异构系统的网络聊天程序设计 266
10.3.1 网络设置 267
10.3.2 Windows客户端程序设计 267
10.3.3 Linux和Windows异构系统的聊天程序运行 270
实验题 271
参考文献 273