随着Internet技术的应用和普及,人类社会已经进入了信息化的网络时代。大多数应用程序都是运行在网络环境下,这就要求程序员能够在应用最广泛的Windows操作系统上开发网络应用程序。本教程结合大量的实例,介绍了开发Windows网络应用程序的必备知识,并完整地讲述了几个Windows网络应用程序实例的开发过程。这些实例包括局域网探测器、基于P2P技术的BT下载工具和基于WinPcap技术的网络数据包捕获、过滤和分析工具等。
《Windows网络编程》可以作为大学本科、大专及高职相关专业的教材,也可作为广大Windows网络应用程序开发人员的参考资料。
目录
- 第1篇基础协议
- 第1章Internet与网络通信模型概述
- 1.1Internet概述
- 1.1.1Internet的发展历史
- 1.1.2Internet的管理机构
- 1.1.3国内Internet网络建设的现状
- 1.2网络通信模型和协议簇
- 1.2.1OSI参考模型
- 1.2.2TCP/IP协议簇体系结构
- 习题
- 第2章TCP/IP协议簇及其应用
- 2.1IP
- 2.1.1IP基础
- 2.1.2IP的关键机制
- 2.2TCP和UDP
- 2.2.1TCP的网络功能
- 2.2.2TCP段结构
- 2.2.3TCP的基本工作流程
- 2.2.4UDP
- 2.3其他常用协议
- 2.3.1ARP
- 2.3.2ICMP
- 2.3.3Telnet
- 2.3.4FTP
- 2.3.5SMTP和POP3
- 习题
- 第3章IP地址和子网规划
- 3.1IP地址
- 3.1.1IP地址的结构
- 3.1.2IP地址的分类
- 3.1.3特殊的IP地址
- 3.2子网划分
- 3.2.1子网
- 3.2.2子网掩码
- 3.2.3CIDR表示法
- 3.2.4单播、组播和广播地址
- 习题
- 第2篇网络编程
- 第4章网络编程基础
- 4.1网络编程相关的基本概念
- 4.1.1网络编程与进程通信
- 4.1.2Internet中网间进程的标识
- 4.1.3网络协议的特征
- 4.1.4高效的用户数据报协议
- 4.1.5可靠的传输控制协议
- 4.2三类网络编程
- 4.2.1基于TCP/IP协议栈的网络编程
- 4.2.2基于WWW应用的网络编程
- 4.2.3基于.NET框架的Web Services网络编程
- 4.3客户机/服务器交互模式
- 4.3.1网络应用软件的地位和功能
- 4.3.2客户机/服务器模式
- 4.3.3客户机与服务器的特性
- 4.3.4容易混淆的术语
- 4.3.5客户机与服务器的通信过程
- 4.3.6网络协议与C/S模式的关系
- 4.3.7错综复杂的C/S交互
- 4.3.8服务器如何同时为多个客户机服务
- 4.3.9标识一个特定服务
- 4.4P2P模式
- 4.4.1P2P技术的兴起
- 4.4.2P2P的定义和特征
- 4.4.3P2P的发展
- 4.4.4P2P的关键技术
- 4.4.5P2P系统的应用与前景
- 习题
- 第5章Socket编程基础
- 5.1Socket网络编程接口的产生与发展
- 5.1.1Socket编程接口起源于UNIX操作系统
- 5.1.2Socket编程接口在Windows和Linux操作系统中得到继承和发展
- 5.2Socket的工作原理和基本概念
- 5.2.1Socket协议的工作原理
- 5.2.2什么是Socket
- 5.2.3Socket的服务方式和类型
- 5.3WinSock编程基础
- 5.3.1构建WinSock应用程序框架
- 5.3.2IP地址的表示形式
- 5.4面向连接的Socket编程
- 5.4.1面向连接的Socket通信流程
- 5.4.2socket()函数
- 5.4.3bind()函数
- 5.4.4listen()函数
- 5.4.5accept()函数
- 5.4.6recv()函数
- 5.4.7send()函数
- 5.4.8closesocket()函数
- 5.4.9shutdown()函数
- 5.4.10connect()函数
- 5.4.11TCP Socket服务器应用程序编程实例
- 5.4.12TCP Socket客户端应用程序编程实例
- 5.5面向非连接的Socket编程
- 5.5.1面向非连接的Socket通信流程
- 5.5.2sendto()函数
- 5.5.3recvfrom()函数
- 5.6Socket选项
- 5.6.1调用getsockopt()函数获取Socket选项
- 5.6.2调用setsockopt()函数设置Socket选项
- 习题
- 第6章探测网络中的在线设备
- 6.1获取本地计算机的网络信息
- 6.1.1使用ipconfig命令获取本地网络信息
- 6.1.2获取本地网络信息的开发接口IP Helper API
- 6.1.3获取本地网络适配器信息
- 6.1.4获取本地主机名、域名和DNS服务器信息
- 6.1.5获取本地计算机网络接口的基本信息
- 6.1.6获取本地计算机IP地址表
- 6.1.7添加和删除IP地址
- 6.2扫描子网中的地址
- 6.2.1计算指定子网内包含的所有IP地址
- 6.2.2实现ping的功能
- 6.2.3扫描子网
- 习题
- 第7章NetBIOS网络编程技术
- 7.1NetBIOS协议及应用
- 7.1.1NetBIOS协议
- 7.1.2使用NBTSTAT命令
- 7.2NetBIOS开发接口
- 7.2.1NetBIOS操作
- 7.2.2NCB结构体
- 7.2.3其他常用NetBIOS结构体
- 7.2.4Netbios()函数
- 7.2.5获取LANA上的所有NetBIOS名字
- 7.2.6获取网络适配器上的MAC地址
- 7.3在程序中实现NBTSTAT命令的功能
- 7.3.1本实例的工作原理
- 7.3.2定义的结构体
- 7.3.3为获取NetBIOS信息而定义的函数
- 7.3.4实现NBTSTAT命令功能的主函数
- 习题
- 第8章高级Socket编程技术
- 8.1Socket编程模型概述
- 8.2阻塞与非阻塞模式Socket编程
- 8.2.1设置非阻塞模式Socket
- 8.2.2非阻塞模式服务器应用程序编程实例
- 8.2.3非阻塞模式客户端应用程序编程实例
- 8.2.4基于非阻塞模式的多线程服务器应用程序编程实例
- 8.3基于Select模型的Socket编程
- 8.3.1select()函数
- 8.3.2基于Select模型的服务器应用程序实例
- 8.4基于WSAAsyncSelect模型的Socket编程
- 8.4.1WSAAsyncSelect()函数
- 8.4.2创建窗口
- 8.4.3窗口例程
- 8.4.4基于WSAAsyncSelect模型的服务器编程
- 8.5基于WSAEventSelect模型的Socket编程
- 8.5.1WSAEventSelect()函数
- 8.5.2创建和管理事件对象
- 8.5.3WSAWaitForMultipleEvents()函数
- 8.5.4WSAEnumNetworkEvents()函数
- 8.5.5基于WSAEventSelect模型的服务器编程
- 8.6基于重叠I/O模型的Socket编程
- 8.6.1WSASocket()函数
- 8.6.2调用WSASend()函数发送数据
- 8.6.3调用WSARecv()函数接收数据
- 8.6.4GetOverlappedResult()函数
- 8.6.5使用事件通知来管理重叠I/O操作
- 8.6.6使用完成例程来管理重叠I/O操作
- 8.7基于完成端口模型的Socket编程
- 8.7.1完成端口模型的工作原理
- 8.7.2创建完成端口对象
- 8.7.3等待重叠I/O的操作结果
- 8.7.4基于完成端口模型的服务器应用程序实例
- 习题
- 第9章基于WinPcap技术的网络数据包捕获、过滤和分析技术
- 9.1WinPcap技术基础
- 9.1.1WinPcap的体系结构
- 9.1.2NIC驱动器和NDIS
- 9.1.3网络组包过滤(NPF)模块
- 9.1.4捕获数据包的原理和步骤
- 9.2下载和安装WinPcap开发包
- 9.2.1下载WinPcap
- 9.2.2安装WinPcap
- 9.2.3源代码的目录结构
- 9.3在Visual C++中使用WinPcap技术
- 9.3.1环境配置
- 9.3.2获取与网络适配器绑定的设备列表
- 9.3.3获取网络适配器的高级属性信息
- 9.3.4打开网络适配器并实现抓包功能
- 9.3.5不使用事件处理器进行抓包
- 9.3.6过滤数据包
- 9.3.7分析数据包
- 习题
- 第3篇实例应用
- 第10章设计局域网探测器
- 10.1局域网探测器的主要功能
- 10.2基础模块设计
- 10.2.1基础函数
- 10.2.2本地主机类CLocalhost
- 10.2.3设备类CDevice
- 10.2.4子网类CSubnet
- 10.3系统主界面设计
- 10.3.1系统主界面中包含的控件
- 10.3.2设计菜单项
- 10.4加载和退出主界面
- 10.4.1加载主界面的代码实现
- 10.4.2在文本编辑框中输出描述信息
- 10.4.3自动调整控件的大小
- 10.4.4退出系统并保存自定义子网
- 10.5管理子网
- 10.5.1添加和编辑子网
- 10.5.2删除子网
- 10.6扫描指定的子网
- 10.6.1设计执行扫描子网操作的对话框
- 10.6.2启动子网扫描
- 10.7检测子网的状态
- 10.7.1设计检测子网状态的对话框
- 10.7.2启动状态检测
- 第11章设计基于P2P技术的BT下载工具
- 11.1P2P技术的工作原理和应用
- 11.1.1P2P技术的工作原理
- 11.1.2P2P网络模型
- 11.1.3BT下载
- 11.1.4FTKernelAPI兼容BT协议网络内核库
- 11.2系统主界面设计
- 11.2.1系统主界面中包含的控件
- 11.2.2设计菜单项
- 11.2.3设计工具栏
- 11.3加载主窗口
- 11.3.1加载主窗口的代码实现
- 11.3.2在StartContext()函数中初始化FTKernelAPI环境
- 11.3.3在InitNatTunnel()函数中初始化穿透内网的操作
- 11.4实现BT下载
- 11.4.1打开种子文件
- 11.4.2开始下载
- 11.4.3停止下载
- 11.4.4显示下载进度
- 11.4.5删除文件
- 11.4.6打开目录