第一部分 理论基础篇 1
第一章 网络和网络协议 1
1.1 计算机网络和Internet 1
1.1.1 计算机网络 1
1.1.2 Internet 8
1.2 网络协议 13
1.2.1 ISO/OSI协议 13
1.2.2 TCP/IP协议 17
1.3 客户/服务器模式 27
1.3.1 客户/服务器模式的产生和定义 27
1.3.2 客户/服务器模式的基本思想 27
1.3.3 服务器的分类 28
1.3.4 有关客户/服务器模式的安全和可靠性 29
1.3.5 客户/服务器模式的发展 29
1.4 小结 29
1.5 习题 30
第二章 Visual C++与网络编程 31
2.1 Visual C++对开发网络应用程序的支持 31
2.1.1 Socket支持 31
2.1.2 WinInet支持 32
2.1.3 ActiveX支持 32
2.1.4 MAPI支持 33
2.1.5 ISAPI支持 33
2.2 小结 34
第二部分 实例与分析篇 35
第三章 使用Windows Sockets API进行网络编程 35
3.1 入门实例——C/S模式程序的简单应用程序(一个控制台应用程序) 35
3.1.1 客户方的程序 36
3.1.2 服务器方的程序 38
3.2 理论及实例分析 42
3.2.1 Socket编程原理 42
3.2.2 Windows Sockets编程原理 56
3.2.3 Windows Socket库函数参考 70
3.3 提高的实例——WinEcho实时点对点的通信例程 91
3.3.1 客户端的主要程序代码及分析 92
3.3.2 服务器端的主要程序代码及分析 97
3.4 小结 103
3.5 习题 103
第四章 使用WinSocket进行网络开发 104
4.1 入门实例——单向通信的C/S程序 104
4.1.1 客户端应用程序 104
4.1.2 服务器应用程序 108
4.2 理论及实例分析 111
4.2.1 WinSock类的概述 111
4.2.2 WinSock类的描述 118
4.3 提高的实例——双向通信的C/S程序 138
4.3.1 客户端应用程序 139
4.3.2 服务器应用程序 149
4.4 小结 157
4.5 习题 158
第五章 用WinInet API进行网络开发 159
5.1 入门实例——一个简单的HTTP客户程序 159
5.1.1 创建工程 159
5.1.2 增加、修改资源 160
5.1.3 为编辑框IDC_EDIT_URL、IDC_EDIT_HTML,按钮IDOK、IDCANCEL连接变量 160
5.1.4 修改httpDlg.h 160
5.1.5 修改httpDlg类的构造函数 161
5.1.6 初始化地址栏数据 161
5.1.7 增加IDOK的消息响应函数 161
5.1.8 地址解析函数ParaseURL() 165
5.1.9 显示HTML源代码Display RawHtml() 165
5.1.10 在httpDlg.cpp中包含头文件wininet.h 165
5.1.11 设置wininet的库文件wininet.lib 165
5.2 理论及实例分析 166
5.2.1 WinInet API概述 166
5.2.2 WinInet API函数简介 166
5.2.3 WinInet API程序设计方法 184
5.3 提高的实例——一个复杂的浏览器 189
5.3.1 例程编写概述 189
5.3.2 CHtmlView类 191
5.3.3 创建工程 192
5.3.4 增加、修改资源 192
5.3.5 给对话框IDD_DIALOG_URL和IDD_DIALOG_CO—DE连接两个新类 193
5.3.6 为编辑框IDC_EDIT_URL、IDC_EDIT_CODE连接变量 194
5.3.7 修改CHttpExView类的代码 194
5.3.8 修改CUrlDlg类的代码 196
5.3.9 添加加一个新类CHttpThread 198
5.3.10 修改CCodelDlg类的代码 205
5.3.11 设置wininet的库文件wininet.lib 208
5.3.12 编译运行 208
5.4 小结 208
5.5 习题 208
第六章 使用WinInet类进行网络开发 209
6.1 入门实例——一个简单的查询FTP站点程序 209
6.1.1 创建工程 209
6.1.2 增加、修改资源 210
6.1.3 为编辑框IDC_EDIT_QUERY、IDC_EDIT_RESULT连接变量 210
6.1.4 修改FtpDlg.h 210
6.1.5 修改FtpDlg类的构造函数 211
6.1.6 初始化地址栏数据 211
6.1.7 增加IDC_BUTTON_QUERY消息响应函数并在其中加入以下代码 211
6.1.8 在FtpDlg.cpp头部加上头文件afxinet.h 213
6.1.9 编译运行 213
6.2 理论及实例分析 213
6.2.1 WinInet类概述 213
6.2.2 WinInet类介绍 214
6.2.3 用WinInet类编程 247
6.2.4 HTTP编程 247
6.2.5 FTP编程 250
6.2.6 Gopher编程 252
6.3 提高的实例——一个FTP客户端程序 253
6.3.1 创建工程 254
6.3.2 增加、修改资源 254
6.3.3 为各个控件连接变量 255
6.3.4 添加一个新类CGetFile 255
6.3.5 为CFtpExDlg类添加代码 261
6.4 小结 266
6.5 习题 266
第七章 创建应用于Internet中的ActiveX控件 267
7.1 入门实例——应用于Internet中的ActiveX控件 267
7.1.1 此控件的功能描述 267
7.1.2 此控件的创建过程描述 267
7.1.3 把此控件应用于IE浏览器中 275
7.2 理论与实例分析 277
7.2.1 关于ActiveX的介绍 277
7.2.2 关于ActiveX控件的介绍 283
7.3 提高的实例——应用于Internet的ActiveX控件组合 289
7.3.1 此控件的功能描述 289
7.3.2 两个控件的创建过程描述 289
7.3.3 把这两个控件组应用于一个应用程序中进行交互操作 308
7.4 小结 313
7.5 习题 313
第八章 ISAPI编程 314
8.1 入门实例——简单的服务器扩展应用程序 314
8.1.1 编写表单 314
8.1.2 创建工程 315
8.1.3 修改代码 316
8.1.4 编译链接与调试 317
8.2 理论及实例分析 317
8.2.1 ISAPI与CGI 317
8.2.2 ISAPI分类 318
8.2.3 ISAPI扩展应用程序 318
8.2.4 ISAPI过滤程序 325
8.3 提高的实例——对指定IP地址的主机进行过滤程序 328
8.3.1 创建工程 329
8.3.2 修改代码 331
8.3.3 编译链接与调试 332
8.4 小结 333
8.5 习题 333
第九章 使用MAPI进行电子邮件应用程序的开发 334
9.1 入门的实例——如何使你的应用程序具有信报处理功能 334
9.1.1 用向导生成应用程序框架 334
9.1.2 对生成的-框架进行编辑 335
9.1.3 一个简单信报应用程序的运行情况 340
9.2 理论与实例分析 340
9.2.1 MAPI的体系结构概述 340
9.2.2 MAPI体系结构的各个部分介绍 341
9.2.3 MAPI应用程序接口 343
9.2.4 MFC对MAPI的支持 346
9.3 提高的实例——使用SMAPI扩展SDI应用程序进行 349
9.3.1 提高部分的应用程序的功能介绍 349
9.3.2 编写这个提高应用程序的步骤 350
9.4 小结 362
9.5 习题 362
第三部分 应用与提高篇 363
第十章 一个基于客户/服务器模式的聊天室应用程序 363
10.1 客户端和服务器端的应用程序的功能介绍 363
10.1.1 客户端应用程序的功能介绍和运行图解 363
10.1.2 服务器端应用程序的功能和运行图解 365
10.2 客户端应用程序的编辑和分析 366
10.2.1 编辑的过程描述 366
10.2.2 应用程序的结构(各个类的关系的说明) 381
10.2.3 主要的运行过程 382
10.3 服务器端应用程序的编辑和分析 382
10.3.1 编辑的过程描述 382
10.3.2 这个应用程序的结构:各个类的关系的说明 397
10.3.3 主要的运行过程 398
10.4 小结 398
10.5 习题 399
第十一章 一个批量发送电子邮件程序 400
11.1 电子邮件概述 400
11.1.1 电子邮件的特性 400
11.1.2 电子邮件工作原理 400
11.1.3 电子邮件地址 402
11.1.4 电子邮件的组成 402
11.2 电子邮件协议 403
11.2.1 SMTP协议 403
11.2.2 POP3协议 406
11.3 编写批量发送电子邮件程序 407
11.3.1 创建工程 408
11.3.2 增加、修改资源 409
11.3.3 为各个控件连接变量 410
11.3.4 添加一个新类CMailMessage 410
11.3.5 添加一个新类CSMTP 413
11.3.6 创建发送邮件对话框 420
11.3.7 完成最后的功能 426
11.4 小结 427
11.5 习题 427
第十二章 利用网络信息加密技术实现电子邮件的安全传输 428
12.1 网络信息加密技术 428
12.1.1 计算机网络安全性问题所要解决的内容 428
12.1.2 电子邮件加密技术 429
12.1.3 对称加密技术 429
12.1.4 非对称加密技术 430
12.1.5 两种加密技术的结合 431
12.2 IDEA算法简介 432
12.2.1 两种常见对称加密算法 432
12.2.2 IDEA加密算法 432
12.3 实现IDEA算法类 434
12.3.1 类的结构 434
12.3.2 类的接口 435
12.4 一个发送加密电子邮件的程序 436
12.4.1 创建工程 437
12.4.2 增加、修改资源 437
12.4.3 为各个控件连接变量 438
12.4.4 引入CIdea、CMailMessage和CSMTP类 439
12.4.5 修改CMailEncryptDlg.cpp文件 439
12.4.6 补充 442
12.5 小结 442
12.6 习题 442
附录一 Windows Sockets错误代码 443
附录二 本书部分习题的答案 445
第一章 章后习题答案 445
第二章 章后习题答案 446
第三章 章后习题答案 447
第四章 章后习题答案 453
第五章 章后习题答案 456
第六章 章后习题答案 458
第七章 章后习题答案 461
第八章 章后习题答案 464
第九章 章后习题答案 466
第十章 章后习题答案 468
第十一章 章后习题答案 472
第十二章 章后习题答案 486