这是一本讲述Windows网络程序设计的入门教程,全书将编程方法、网络协议和应用实例有机结合起来,详细阐明了Windows网络编程的各方面内容。此外,本书提供了大量完整实例,许多例子稍做修改即可应用到实际项目中。
本书将编程方法、网络协议和应用实例有机结合起来,详细阐明Windows网络编程的各方面内容。本书首先介绍Windows平台上进行网络编程的基础知识,包括网络硬件、术语、协议、Winsock编程接口和各种I/0方法等。然后通过具体实例详细讲述当前流行的高性能可伸缩服务器设计、IP多播和Internet广播、P2P程序设计、原始套接字、SPI、协议驱动的开发和原始以太数据的发送、ARP欺骗技术、LAN和WAN上的扫描和侦测技术、个人防火墙与网络封包截获技术等。最后讲述IP帮助函数。
本书结构紧凑,内容由浅入深,是学习Windows网络与通信程序设计的理想书籍。
第1章 计算机网络基础
1.1 网络的概念和网络的组成
1.2 计算机网络参考模型
1.2.1 协议层次
1.2.2 TCP/IP参考模型
1.2.3 应用层(Application Layer)
1.2.4 传输层(Transport Layer)
1.2.5 网络层(Network Layer)
1.2.6 链路层(Link Layer)
1.2.7 物理层(Physical Layer)
1.3 网络程序寻址方式
1.3.1 MAC地址
1.3.2 IP地址
1.3.3 子网寻址
1.3.4 端口号
1.3.5 网络地址转换(NAT)
1.4 网络应用程序设计基础
1.4.1 网络程序体系结构
1.4.2 网络程序通信实体
1.4.3 网络程序开发环境
第2章 Winsock编程接口
2.1 Winsock库
2.1.1 Winsock库的装入和释放
2.1.2 封装ClnitSock类
2.2 Winsock的寻址方式和字节顺序
2.2.1 Winsock寻址
2.2.2 字节顺序
2.2.3 获取地址信息
2.3 Winsock编程详解
2.3.1 Winsock编程流程
2.3.2 典型过程图
2.3.3 TCP服务器和客户端程序举例
2.3.4 UDP编程
2.4 网络对时程序实例
2.4.1 时间协议(Time Protocol)
2.4.2 TCP/IP实现代码
第3章 Windows套接字I/0模型
3.1 套接字模式
3.1.1 阻塞模式
3.1.2 非阻塞模式
3.2 选择(select)模型
3.2.1 select函数
3.2.2 应用举例
3.3 WSAAsyncSelect模型
3.3.1 消息通知和WSAAsyncSelect函数
3.3.2 应用举例
3.4 WSAEventSelect模型
3.4.1 WSAEventSelect函数
3.4.2 应用举例
3.4.3 基于WSAEventSelect模型的服务器设计
3.5 重叠(Overlapped)I/O模型
3.5.1 重叠I/O函数
3.5.2 事件通知方式
3.5.3 基于重叠I/O模型的服务器设计
第4章 IOCP与可伸缩网络程序
4.1 完成端口I/0模型
4.1.1 什么是完成端口(completion pott)对象
4.1.2 使用IOCP的方法
4.1.3 示例程序
4.1.4 恰当地关闭IOCP
4.2 Microsoff扩展函数
4.2.1 GetAcceptExSockaddrs函数
4.2.2 TransmitFile函数
4.2.3 TransmitPackets函数
4.2.4 ConnectEx函数
4.2.5 DisconnectEx函数
4.3 可伸缩服务器设计注意事项
4.3.1 内存资源管理
4.3.2 接受连接的方法
4.3.3 恶意客户连接问题
4.3.4 包重新排序问题
……