首页 > 图书中心 >图书详情
TCP/IP网络编程项目式教程
作者:唐四薪
丛书名:计算机系列教材
定价:39元
印次:1-5
ISBN:9787302536840
出版日期:2019.11.01
印刷日期:2024.01.17
本书主要介绍基于Visual C++的WinSock网络编程,以项目实例的形式介绍了:网络编程概述、控制台版本的TCP通信程序、Windows对话框版本的TCP通信程序、异步通信版的TCP通信程序、UDP通信程序、原始套接字编程,MFC网络编程等。并介绍了网络编程的一些实例,如文件传输程序、秒杀软件、在线考试系统等。
more >前言 TCP/IP网络编程(俗称Socket编程)是针对TCP/IP协议簇(如TCP、UDP)进行的网络编程。这是一种最传统的网络编程方式,许多在互联网早期诞生的网络软件(如QQ、Foxmail等)都是采用TCP/IP网络编程技术开发出来的。 相对于基于应用层协议(如HTTP)的Web编程来说,TCP/IP 网络编程由于是基于更低层的协议进行的,必须编程实现创建套接字、监听、建立连接等前期步骤,才能进行网络通信,而Web编程却能依靠HTTP直接收发数据,因此,TCP/IP网络编程的入门难度明显比Web编程要大得多。同时,TCP/IP网络编程主要用于开发C/S结构或P2P结构的软件,这类软件需要开发Windows界面,还经常会涉及多线程编程以及线程之间参数的传递,因此,在TCP/IP网络程序中,通常网络通信代码、Windows界面代码及多线程处理代码混杂在一起,这无疑也增加了TCP/IP网络编程的学习难度。 TCP/IP网络编程相对于当今的Web编程来说虽然属于冷门,但其实际应用领域还是很广的,并且有些应用具有不可替代性(例如工业控制软件、物联网通信软件等)。随着物联网技术的普及,TCP/IP网络编程必将再次变得重要起来。以慕课网(www.imooc.com)为例,关于Socket编程技术的相关课程多达9门,有的课程还指出: “掌握了Socket技术,就等于掌握了推送、IM、物联网等领域的命脉”“学习本课程后,物联网相关通信工作不再是难题,且你有能力成为物联网协议的制定者”。这足以说明学习TCP/IP 网络编程大有可为。 目前市场上有很多网络编程的教材,其读者对象主要是已经很好地掌握了Visual C++/MFC编程的学生。但实际情况是很多学生只有C语言和面向对象编程的基础知识,几乎还不具备任何Windows程序开发的知识和经验,编程能力不足。本书正是为了帮助这些学生快速掌握TCP/IP网络编程技术而编写的。本书在内容编排上注重以下几点。 (1) 分散难点,由浅入深,问题驱动。例如,在程序类型上,按照控制台程序→Windows API程序→MFC程序的顺序组织案例;在开发技术上,按照TCP一对一同步通信→TCP异步通信→TCP一对多通信→select模型一对多通信→I/O完成端口模型的顺序依次展开。这样,就将TCP/IP网络编程的难点——WinSock的5种I/O模型分散到不同的章节实例中。 (2) 本书大部分案例程序是Windows界面程序,这样有利于提高学生的学习兴趣,并且能让学生掌握如何将控制台程序转换成Windows界面程序,这是很有实用价值的技能。 (3) 考虑到很多学生的Visual C++编程基础不好,本书在介绍网络程序之前,先介绍一些预备程序。TCP/IP网络编程的另一个难点是很多程序都不可避免地涉及多线程,本书将多线程编程也分散安排在几章的实例中讲解。 (4) 摒弃了用WinSock编程制作浏览器、FTP客户端和电子邮件客户端等内容。因为这些软件已经有很多现成的,完全不需要用户自己开发,所以这些内容也没有实用价值,且不能让学生产生学习兴趣。本书另外安排了群聊软件、网络用户登录系统、在线考试系统等实用价值很大且有趣味性的案例。 目前TCP/IP 网络编程的语言有C++、Python、Java等。Python、Java等语言都对网络编程的核心WinSock函数进行了封装,而C++可直接使用WinSock函数进行编程,这样更有利于学生理解TCP/IP网络编程的底层实现细节,是纯正的TCP/IP网络编程,学生学会使用C++的Win32 API进行TCP/IP网络编程后,就很容易掌握Linux、UNIX等环境下的网络编程方法;同时,C++语言效率高,适合物联网、工控软件的开发。基于以上考虑,本书采用Visual C++作为TCP/IP网络编程的实现语言;同时,为了帮助读者融会贯通,本书在附录中介绍了使用Python和Java制作的TCP通信程序。 本书为教师提供教学用多媒体课件、实例源文件和习题参考答案,可在清华大学出版社网站(www.tup.com.cn)本书页面中免费下载,也可访问本书在超星网的配套课程(mooc1.chaoxing.com/course/201699197.html),或者和作者联系(tangsix@163.com)。 本书是微课版,提供了20个配套视频,在Visual Studio 2010环境中对书中的关键内容进行了演示和讲解,扫描书中相应位置的二维码即可观看。 本书编写分工如下: 唐四薪编写了第1~8章,郑光勇编写了第9、10章,唐琼编写了第11章,湖南中兴网信科技有限公司的欧阳宏编写了第12章,林睦纲、谭晓兰、喻缘、刘燕群、唐沪湘、刘旭阳、陆彩琴、唐金娟、谢海波、尹军、唐琼、何青、唐佐芝、舒清健等编写了第13章。 本书的写作得到湖南省普通高等学校教学改革研究项目(2018)“CDIO理念下基于混合式教学的网络编程课程教学改革探索与实践”的支持。本书是湖南省教育厅科学研究一般项目“半监督学习方法在RNA比较序列分析中的应用”(编号: 15C0204) 的研究成果。 限于作者水平,书中不妥之处在所难免,恳请广大读者和同行批评指正。 编者2019年5月
more >