前言
当前图书市场上,参加工作3~4年的Linux开发工程师能参考的实用型网络编程书不多,不少Linux网络编程书还从编辑器、编译器如何使用讲起,那些内容都是给学生或者刚刚参加工作的人员看的,适用于未接触过Linux开发的人。Linux网络编程最重要的基础有两点,一是Linux多线程编程功底,二是对网络协议的理解。笔者以前编写的《Linux C与C++一线开发实践》对Linux基础编程进行了较为详细的讲述,也取得到了不错的市场反馈。很多读者都问笔者:下一步想深入地学习Linux编程,应该看哪些书?我想,Linux编程的两大就业领域中,一个是嵌入式开发,另一个是网络服务器编程。前者目前书籍较多。而后者,尤其是有深度、符合招聘市场要求的从基础到案例的网络编程书非常少!当前网络系统越来越复杂,应用范围越来越大,迫切需要新的技术来应对新应用的挑战。这一点可以从广大招聘启事上看得出来。网络编程难,难就难在服务器编程。
一本专门讲述Linux服务器编程的书,不但能帮助一般工程师提高网络编程能力,而且还可以为市场输送更符合需求的工程师。笔者常年从事一线Linux服务器编程,了解流行的Linux网络编程技术,并且拥有相关项目经验。对于Linux编程的初学者,可以将本书和笔者的另一本编程书《Linux C与C++一线开发实践》结合起来学习。
关于本书
本书涵盖Linux网络编程从基础到高级开发的知识点,重点讲解了技术性较强的TCP编程、UDP编程和I/O模型编程,同时对每个知识点都从原始概念和基本原理进行了详细和透彻的分析,并对比较复杂和难度较高的内容绘制了原理图进行讲解。书中的示例代码大多是从实际项目总结而来,有很强的实用性。
本书从五大服务器编程基础技术开始逐步深入到四大项目案例进行开发实践,融合基础知识和一些数据库、跨平台界面编程知识,使得我们的案例系统完整且包含客户端,甚至稍微修改就可以上升为商用软件,比如最后一章的并发游戏服务器。通常在网络编程书中,一般只会讲解一个综合案例,而本书提供了HTTP服务器、FTP服务器、并发聊天服务器与C/S和P2P联合架构的并发游戏服务器四大项目案例,可以作为课程设计和学生毕业设计的素材。
本书适用的读者
本书由于技术全面、讲解循序渐进、学习曲线坡度小、注释详尽,因此本书适用的读者面很广,可作为学校和培训班教材使用,也可作为工程师自学教材。如果是从来没有接触过Linux和C/C++语言编程的读者,可以先学完《Linux C与C++一线开发实践》,再学本书,那样可以起到事半功倍的效果。另外,本书需要读者有C和C++的基础,最好是C++11,因为本书的线程池用到的语言是基于C++11的。
配套源码下载
本书配套的源码,需要使用微信扫描下面二维码获取,可按扫描后的页面提示填写自己的邮箱,把下载链接转发到邮箱中下载。如果发现问题或疑问,请发送电子邮件联系booksaga@163.com,邮件主题为“Linux C/C++服务器开发实践”。
本书作者与鸣谢
本书笔者为朱文伟和李建英。本书的顺利出版,离不开清华大学出版社老师们的帮助,在此表示衷心的感谢。虽然笔者尽了最大努力编写本书,但书中依然可能存在疏漏之处,敬请读者提出宝贵的意见和建议。
作 者
2022年6月