第1篇 预备知识 2
第1章 概述 2
1.1VS2008开发环境与C#应用程序开发模型 2
1.1.1开发环境与安装要求 2
1.1.2C#应用程序开发模型 2
1.2网络通信模式与网络协议 7
1.2.1分散式、集中式与分布式 7
1.2.2C/S模型 8
1.2.3B/S模型 9
1.2.4P2P模型 9
1.2.5TCP/IP网络协议 9
习题 11
第2章 进程与线程 12
2.1进程与线程的基本概念 12
2.2进程管理(Process类) 13
2.2.1获取进程信息 15
2.2.2启动和停止进程 17
2.3线程管理(Thread类) 21
2.3.1前台线程与后台线程 22
2.3.2线程的基本操作 22
2.3.3Volatile关键字 24
2.3.4在一个线程中访问另一个线程的控件 24
2.4线程同步与线程池 27
2.4.1线程的优先级 27
2.4.2线程同步 28
2.4.3lock语句 28
2.4.4线程池 32
2.5BackgroundWorker组件 33
习题 36
第3章 IP地址转换与网卡信息检测 37
3.1IP地址转换与域名解析 37
3.1.1IP地址与端口 37
3.1.2IP地址转换相关类 39
3.1.3域名解析 41
3.2网卡信息与网络流量检测 43
3.2.1网卡信息检测相关类 43
3.2.2网络流量检测相关类 46
3.2.3Ping及其相关类 47
3.3网络数据编码与解码 49
3.3.1Encoding类 51
3.3.2Encoder类和Decoder类 53
习题 56
第4章 套接字与数据流 57
4.1套接字 57
4.1.1面向连接的套接字 60
4.1.2无连接的套接字 64
4.2数据流 65
4.2.1文件流 66
4.2.2内存流 70
4.2.3网络流 72
4.2.4StrearnWriter类与StreamReader类 74
4.2.5BinaryReader类与BinaryWriter类 76
习题 79
第2篇 网络协议类基本编程技术 82
第5章 TCP应用编程 82
5.1TCP应用编程概述 82
5.1.1TCP简介 82
5.1.2TcpListener类与TcpClient类 83
5.1.3TCP应用编程的一般步骤 85
5.1.4TCP的无消息边界问题 86
5.2利用同步TCP编写网络聊天程序 87
5.2.1服务器端编程 88
5.2.2客户端编程 93
5.3利用同步TCP编写网络游戏 97
5.3.1服务器端编程 98
5.3.2客户端编程 111
5.4异步TCP应用编程 128
5.4.1异步设计模式概述 128
5.4.2异步TCP应用编程的一般方法 130
5.4.3使用异步方式调用同步方法 132
5.5异步TCP编程举例 134
5.5.1服务器端编程 134
5.5.2客户端编程 141
习题 147
第6章 UDP应用编程 148
6.1UDP与TCP的区别 148
6.2UDP应用编程技术 149
6.2.1UdpClient类 149
6.2.2同步发送和接收数据 151
6.2.3异步发送和接收数据 154
6.3利用UDP进行广播和组播 160
6.3.1广播和组播的基本概念 160
6.3.2加入和退出组播组 161
6.3.3利用广播和组播实现群发功能 162
6.4利用UDP编写网络会议程序 164
习题 169
第7章 FTP应用编程 170
7.1FTP概述 170
7.1.1FTP的工作原理 170
7.1.2FTP的数据传输方式 171
7.1.3文件传输模式 171
7.2FTP规范 172
7.2.1FTP命令 172
7.2.2FTP响应码 174
7.3FTP编程相关类 177
7.3.1FtpWebRequest类 177
7.3.2FtpWebResponse类 179
7.3.3NetworkCredential类 180
7.4FTP编程举例 180
7.4.1服务器端编程 180
7.4.2客户端编程 193
习题 201
第8章 HTTP应用编程 202
8.1HTTP简介 202
8.1.1HTTP的特点 202
8.1.2HTTP的请求与响应 203
8.2HTTP编程相关类 207
8.2.1WebRequest类和HttpWebRequest类 207
8.2.2WebResponse类和HttpWebResponse类 208
8.2.3Uri类 209
8.2.4利用GET方法提交请求的数据 209
8.2.5利用POST方法提交请求的数据 210
8.3利用HTTP实现多线程文件下载 213
8.3.1检测网络资源是否有效 213
8.3.2设置下载数据的范围 213
8.3.3多线程文件下载完整实现 214
习题 221
第9章 SMTP与POP3应用编程 222
9.1SMTP简介 222
9.1.1SMTP和ESMTP 222
9.1.2与邮件服务器连接 224
9.1.3邮件的发送过程 225
9.2POP3简介 225
9.3邮件收发相关的类 228
9.3.1身份验证类(Network-Credential) 228
9.3.2邮件地址类(MailAddress) 228
9.3.3邮件信息类(MailMessage) 228
9.3.4附件类(Attachment) 229
9.3.5邮件发送类(SmtpClient) 229
9.3.6邮件附加信息类 230
9.4邮件收发举例 231
9.4.1同步方式邮件收发处理 231
9.4.2异步方式邮件收发处理 239
习题 242
第3篇 网络协议综合应用开发技术 244
第10章 P2P应用开发技术 244
10.1P2P基本知识 244
10.1.1Peer To Peer架构 245
10.1.2P2P实现原理 247
10.2对等名称解析协议 248
10.2.1环境要求 248
10.2.2对等节点名称和PNRP ID 249
10.2.3群 250
10.2.4PNRP名称注册与解析 251
10.3PeertoPeer名称空间 252
10.3.1Cloud类 253
10.3.2PeerName类 254
10.3.3PeerNameRegistration类 255
10.3.4PeerNameResolver类 256
10.4P2P视频聊天程序 259
10.4.1Windows API摄像头接口 260
10.4.2P2P视频聊天具体实现 261
习题 275
第11章 数据加密与解密技术 276
11.1加密与解密相关的类 276
11.1.1对称加密及其相关类 276
11.1.2不对称加密及其相关类 279
11.1.3加密流 280
11.1.4密钥容器 281
11.2加密与解密的具体实现 282
11.2.1字符串的加密与解密 282
11.2.2一般文件的加密与解密 285
11.2.3XML文件的加密与解密 289
11.3网络应用中数据的加密与解密 293
11.4Hash算法与数字签名 308
习题 311
第12章 网络应用开发综合实例 312
12.1单机图形图像绘制方法 312
12.1.1将图形图像作为对象 312
12.1.2鼠标事件处理 315
12.1.3绘制任意大小的基本图形 316
12.1.4绘制任意形状的曲线 320
12.1.5绘制任意大小和方向旋转的文字 322
12.1.6绘制任意大小的图像 324
12.1.7句柄的设计和处理 325
12.1.8鼠标指针状态控制 328
12.2多机联合绘图架构设计 330
12.2.1系统概述 330
12.2.2类设计 330
12.2.3主机与附机 332
12.3多机联合绘图系统具体实现 334
12.3.1画板设计 334
12.3.2多机同步控制 338
12.3.3绘图对象的序列化与反序列化 348
12.3.4图像的打印和预览 349
12.3.5导出图像 350
12.3.6完整实现及扩展建议 350
习题 352