第I部分 服务器基础
第1章 基于服务器的开发
1. 1 什么是服务器
1. 2 基于服务器的开发需求增长
1. 2. 1 NetWare
1. 2. 2 胖客户机模型的缺点
1. 2. 3 Internet:“TCO问题的解决方案
1. 2. 4 内部网:带宽的天堂
1. 2. 5 Windows 2000硬件支持
1. 3 基于服务器的应用程序开发的不同之处
1. 3. 1 服务器是无人照管的
1. 3. 2 资源泄漏是隐藏的错误
1. 3. 3 多任务的必要性
1. 4 基于服务器的应用程序
1. 4. 1 传统的基于服务器的系统
1. 4. 2 基于Web的服务器
1. 5 基于服务器编程的WIN32支持
1. 5. 1 控制台APl
1. 5. 2 服务API
1. 5. 3 假冒API
1. 5. 4 事件记录API
1. 5. 5 RAS. MAPI和TAPI
1. 5. 6 数据库连通性
1. 5. 7 ASP
1. 5. 8 ISAPI
1. 5. 9 通信API
1. 6 SQL Server简介
1. 7 结论
第2章 基于服务器开发的基础
2. 1 多任务处理技术基础
2. 1. 1 协作式多任务处理
2. 1. 2 抢占式多任务技术
2. 2 多线程
2. 3 同步对象
2. 3. 1 临界区
2. 3. 2 事件
2. 3. 3 互斥体
2. 3. 4 信号量
2. 3. 5 可等待的定时器
2. 3. 6 Wait函数和线程同步
2. 4 创建新线程
2. 4. 1 线程创建函数
2. 4. 2 多线程实例程序
第II部分 Windows 2000作为服务器平台
第3章 Service API
3. 1 什么是Service APl
3. 2 谁运行服务
3. 3 Service API实例
3. 3. 1 安装服务
3. 3. 2 使用CreateService安装服务
3. 3. 3 使用DeLeteService卸载服务
3. 3. 4 启动服务
3. 3. 5 ServiceMain内部
3. 4 Windows 2000服务的C++框架
3. 4. 1 为Windows 2000服务编写C++类
3. 4. 2 实现C++服务类
3. 4. 3 增强功能
3. 5 结论
第4章 假冒API
4. 1 Windows 2000安全概述
4. 2 假冒的基础
4. 3 假冒的类
4. 3. 1 基于连接的假日
4. 3. 2 基于客户机信息的假冒
4. 3. 3 保护服务器特定的资源
4. 3. 4 联合使用假冒和自定义安全
4. 4 结论
第5章 事件记录
5. 1 事件记录APl
5. 1. I 在事件日志中写入事件
5. 1. 2 在CPPService中添加事件记录
5. 1. 3 从事件日志中读取事件
5. 2 结论
第6章 Remote Access Service API
6. 1 RAS API概述
6. 2 使用RasDial的实例
6. 2. 1 控制多个线程
6. 2. 2 RasDialFunc2回调函数
6. 3 RAS的其他用途
6. 4 结论
第7章 TAPl 和MAPI
7. 1 TAPl
7. 1. 1 TAPI版本
7. 1. 2 TAPI设备
7. 1. 3 TAPI错误
7. 1. 4 得到TAPI的反馈
7. 1. 5 TAPI实例
7. 1. 6 TAPI的其他作用
7. 2 MAPI
7. 2. 1 MAPI的版本
7. 2. 2 选择正确的客户机接口
7. 2. 3 简单MAPI
7. 2. 4 完整MAPI
7. 2. 5 在服务中综合使用MAPI和TAPI
7. 3 结论
第8章 ODBC API
8. 1 ODBC的功能
8. 2 ODBC的替代品
8. 3 ODBC组件
8. 3. 1 应用程序
8. 3. 2 Driver Manager
8. 3. 3 驱动程序
8. 3. 4 数据源
8. 4 ODBC类
8. 4. 1 实例:使用oDBC类
8. 4. 2 0DBCDatabase类
8. 4. 3 CODBCCursor类
8. 5 ODBC陷井和缺陷
第9章 Active Server Pages
9. 1 什么是ASP
9. 1. 1 ASP与HTML页面的相似性
9. 1. 2 ASP与HTML页面的不同
9. 2 ASP的优势
9. 3 ASP的弱点
9. 4 ASP应用程序中的可用对象
9. 4. 1 Application对象
9. 4. 2 Session对象
9. 4. 3 Server对象
9. 4. 4 Request对象
9. 4. 5 Response对象
9. 4. 6 ObjectContext对象
9. 5 ASP实例
9. 5. 1 简单的电话目录
9. 5. 1 更加复杂的ASP实例:Troubleshooter
9. 6 结论
第10章 Internet Server API
10. 1 DLL回顾
10. 2 ISAPI概述
10. 2. 1 ISAPI比CGI的优越之处
10. 2. 2 ISAPI比ASP的优越之处
10. 3 简单的ISAPI扩展
10. 4 ISAPI扩展的其他用途
10. 5结论
第11章 ISAPI过滤器
11. 1 ISAPI过滤器概述
11. 2 ISAPI过滤器实例
11. 3 MFC ISAPI过滤器
11. 4 结论
第12章 客户机/服务器通信API
12. 1 客户机与服务器的通信方式
12. 1. 1 TCP/IP(WinSock)
12. 1. 2 命名管道
12. 1. 3 如何选择WinSock和命名管道
12. 2 分派通信请求
12. 2. 1 管理客户机的状态
12. 2. 2 管理故障
12. 2. 3 分派请求
12. 2. 4 WinSock和命名管道的比较
12. 2. 5 事件与I/o完成端口与QueueUserWorkItem之间的比较
12. 3 通用的客户机通信类
12. 4 结论
第13章 集成SOL Server
13. 1 Transac-SQL
13. 1. 1 触发器
13. 1. 2 存储过程
13. 1. 3 扩展存储过程
13. 2 结论
第III部分 建立Windows 2000服务器应用程序
第14章 传统的服务应用程序
14. 1 网络监视器
14. 2 什么是网络监视器
14. 1. 2 网络监视器的结构
14. 1. 3 CMonitorService类
14. 2 监视任务函数
14. 3 结论
第15章 管理Web上的服务应用程序
15. 1 使用ASP监视MONITORSERVICE
15. 1. 1 同警报进行交互
15. 1. 2 同任务进行交互
15. 2 使用ISAPI监视MONITORSERVICE
15. 2. 1 CMonitorService修改
15. 2. 2 ISAPIMonitor ISAPI扩展
15. 3 结论
附录A 在IIS中设立虚拟目录
附录B 服务失败的反应
参考文献