图书前言

随着计算机网络技术的飞速发展,以TCP/IP网络技术为核心的因特网已成为支撑现代社会运行的基础设施之一,深入理解网络工作原理、了解网络协议工作细节、具有扎实的高层次网络应用开发能力已逐渐成为IT从业者的基本要求。

然而,由于计算机网络技术复杂而抽象,在高校计算机类专业的人才培养中,单靠“计算机网络”一门课程的理论教学及相应的协议分析及组网实验,很难使学生真正理解掌握网络技术并具备开发以TCP/IP为基础的网络应用程序的能力。为此,很多高校的计算机类专业都开设了“TCP/IP套接字(socket)网络编程”课程,实践证明,将本课程与网络原理教学有机结合起来,不仅可以加深学生对网络原理及实现方法的理解,还可以使学生掌握网络编程的基本方法,逐步提高网络软件开发能力,培养学生的创新精神和自学能力。

本书是作者在长期从事“计算机网络”和“网络编程”两门课程教学的经验基础之上,以作者自己编写的“网络编程”课程讲义为基础,不断完善改进而成的。本书以Visual Studio 2010为平台,通过大量实例,全面系统地介绍基于WinSock进行网络编程的基本原理、基本方法和必需的知识。学习本书内容之前,要求读者已学过C++语言程序设计,熟悉面向对象程序设计的概念和方法。

本书在内容组织方面,除WinSock网络编程本身的原理和方法以及必要的计算机网络知识外,还有较大的篇幅用于讲解Windows编程的基本知识。这是因为目前多数应用型本科的教学都采用了“3+1模式”(前3年完成理论知识教学,最后1年集中实习实践),导致很多专业课的安排被提前,本课程一般被安排在第五学期甚至是第四学期学习,此时,大多数学生几乎还不具备Windows程序开发的任何知识和经验,程序编写能力不足。根据作者经验,在讲解WinSock编程的同时,详尽地讲解相关的Windows编程的知识和方法,对降低学生学习难度、提高学习兴趣是很有帮助的。

全书共分9章,第1章主要介绍计算机网络的基本概念和基本工作原理,以及网络程序的工作模式和编程方法等; 第2章介绍使用Visual C++ 2010开发Windows应用程序的方法以及有关概念和基本原理,为后续各章的实例开发打好基础; 第3~8章由易到难逐步介绍流式套接字、数据报套接字以及原始套接字的编程方法和相关的Windows编程知识,并对网络通信中的多线程编程、I/O模型以及IP分组的捕获分析等内容进行深入讲解; 第9章介绍MFC提供的两个WinSock类——CAsyncSocket类和CSocket类的使用方法。

本书系统性强,内容丰富、结构清晰、论述严谨,既突出基本原理和技术思想的讲解,也强调工程实践,适合作为网络工程、计算机科学与技术等计算机类专业的本科生教材,也可供对网络编程感兴趣的读者参考学习。

本书除两位署名作者外,李文杰老师和高葵老师也参加了本书部分编写工作,其中李文杰老师编写了本书的第2章,高葵老师编写了本书第5章。另外,感谢山东农业大学计算机系的各位老师对本书的支持。

限于作者的水平和经验,错误与不足之处在所难免,恳请读者批评指正。

本书的PPT课件及源代码等配套资源可以从清华大学出版社网站www.tup.com.cn下载。

作者

2015年2月