前言
随着计算机和网络的普及,单独工作、不需要与其他用户交互的应用程序越来越少了。打开计算机,打开浏览器,打开各种各样的聊天和通信工具,我们接触到的是网络。展望未来的IT产业,其中高性能的服务器设计,用户程序的分布管理,高效率的数据传输,数据安全等无不是我们网络程序设计者要考虑的问题。
网络编程复杂,一方面是因为网络协议本身复杂多样,许多编程者又对具体使用的下层协议了解不够;另一方面Windows系统提供的编程接口多种多样,且都工作在不同的层次。虽然现在介绍网络编程的书很多,但大都没有将概念解释清楚,如完成端口、分层服务提供者、NDIS等,更有甚者,就直接在书上罗列代码,对重要的概念、机制和协议等避而不谈,这给网络编程初学者学习时带来困惑。
作为一项新兴技术,P2P以其无与伦比的可伸缩性和对资源的利用率吸引了许多开发者、投资者、IT经理人和大众的注意。常见的BT、eMule、Kuro、OICQ等网络软件都是基于P2P模型的,它们的基本思想是不经过固定的服务器,Internet上的任意两台计算机就可以直接通信。现在市场上这方面的书籍大多是注重理论,而谈论使用C/C++进行P2P程序设计的书籍还没有,这使得现今国内的P2P人才非常匮乏。
在网络安全越发显得重要的今天,防火墙在网络软件中扮演的角色越来越不容忽视了。然而,Windows防火墙的开发涉及太多的公司内部机密,所以这项技术大都以原理的形式出现,很少有人提及具体的实现方法。网上虽然有不少出售防火墙源程序代码的站点,但是撇开不菲的价格不说,其简单的文档说明令没有相关编程经验的人很难看懂。这使得许多想从事防火墙开发的读者不知如何下手。
鉴于以上几点,我编写了介绍Windows环境下Visual C++网络与通信程序设计的书。我希望本书的读者不但能够学会网络编程,更能从此喜欢它,既愿意又有能力为中国的网络发展贡献自己的一份力量。
前言
[第1章 计算机网络基础
1.1 网络的概念和网络的组成]
1.2 计算机网络参考模型
1.3 网络程序寻址方式
1.4 网络应用程序设计基础
[第2章 Winsock编程接口
2.1 Winsock库]
2.2 Winsock的寻址方式和字节顺序
2.3 Winsock编程详解
2.4 网络对时程序实例
第3章 Windows套接字I/O模型
第4章 IOCP与可伸缩网络程序
第5章 互联网广播和IP多播
第6章 原始套接字
第7章 Winsock服务提供者接口(SPI)
第8章 Windows网络驱动接口标准(NDIS)和协议驱动的开发
第9章 网络扫描与检测技术
第10章 点对点(P2P)网络通信技术
第11章 核心层网络封包截获技术
第12章 Windows网络防火墙开发技术
第13章 IP帮助函数
第14章 E-mail协议及其编程
第15章 Telnet协议及其编程
第16章 FTP协议及其编程
第17章 多平台同步随身阅读——Send To Kindle的一种实现方式