编辑: ACcyL 2015-03-30
1.

1 1.2 1.3 1.4 1.5 1.6 1.7 目录 序 那些年的网络库 Hello, Asio asio 零泄漏设计 asio事件循环 异步救星:协程 实战: httpd

1 跨平台多线程服务端编程 使用 asio C++ 网络 库 为什么又写一本网络编程书? 虽然现在市面上同种类的书籍多如牛毛, 很多时候却为了迎合新人, 不得不从基础讲起! 导致了 一些经过几年社会沉淀的程序员,再次踏入图书馆的时候突然发现没有适合自己的书籍, 再加 上经过数年的开发, 早就形成了一套自我的开发规范, 在无形中约束自身. 针对《21天学会 c++》等系列, 早就被这些人群所无视. 这其实是属于非常可悲的一个事情, 其实你无非是从一 个囚笼中挑入另外一个囚笼, 只不过现在的人多了一个谋生的技能! 但是并不代表你懂得编程. 我所想要做的,是希望把自己认为正确的知识传播出来!更希望打破一些被自身经验所约束 的程序员提供一个新的知识架构! 本书将会大幅度讲述boost.asio这个俗称宇宙级别的异步框 架,并且利用boost库进行快速开发. 利用最新的c++17, 无论从性能和开发效率来说, 这绝对秒 杀大部分的脚本语言. 并非毫无道理, 并不是存在即合理(作者深信这句话本身就是不合理的!) 而是因为他的存在让我看到了最为正确的框架.特别是在网络编程中, 这一些更加彰显无遗. 这一切, 将在这本书中尽情呈现给所有读者. 本书适合什么样的人群?对读者有什么要求? 想要从事网络方面开发的程序员, 并且从心底中有追逐技术的态度! 因为在这里, 我们称过时的 技术为垃圾! 科技的进步, 人类的认知从来不会怜悯过时的知识, 哪怕伟大如哥白尼发布超越那 个年代的 地心说 一样的结论, 经过多年的发展, 这些将毫无作用. 针对新人, 我们希望你应该把 精力放在语言的基础之上, 这里我们更推荐C++之父 Bjarne Stroustrup 写的和. 序2为什么要用 C++ 编写服务端程序? 如果说答案是性能,那么肯定有人会满不在乎.觉得性能不够的话, 只要加机器就可以了. 然而更少的机器,意味着更低的能耗,更少的硬件投入,更少的人力资源投入去维护机器. 总而言之,更低的成本. 肯定会有人说,C++的开发速度太慢了.然而这并不是绝对的.C++也可以做到非常快速的开 发.有句俗语 脚本一时爽,重构火葬场 说的正是脚本语言开发的项目进入维护阶段后无穷 的灾难.而 C++ 经过了几十年的发展, 拥有庞大的工具链. 不管是动态分析还是静态分析都有 大量的工具, 能极大的帮助程序员减少错误. c++得益于精良的设计,严格的检查,越是大型的 工程,越是能降低开发成本. 但这并不意味着C++就不适合小型项目了.小型的项目,也可以快速开发.因为 C++11 开始,已经 感觉像是全新的语言了,可以完全以脚本的形式去使用,获得接近甚至超越脚本语 言的开发速度,同时得益于编译优化,获得不俗的运行时性能. C++正是鱼和熊掌得兼的语 言. 为什么要用asio这个库? 事实上如果使用C++开发服务端程序,你有多得数不清的选择.什么 ACE 啦,libuv 啦, libevent 啦,libev 啦,甚至可以直接使用 epoll/iocp 这样的系统API. 为什么要用 asio 呢? 那些年我们用过的网络库 在计算机史前文明时代, 曾经有个世界难题, 叫 c10k problem . 这个是继 y2k problem 后的又 一个重大攻关项目. 全世界的文艺青年都想拿下解决这个问题的荣誉, 正可谓八仙过海, 各显神 通. 那一年, NPTL 还没有研究出来. 还不能创建成千上万个线程 那一年, windows 还在蓝屏中挣扎, 无暇顾及网络. 然而, 曙光还是有的. 异步的出现带给了人以希望. 古老的UNIX早就想到了, 提供了 select() 系 统调用供人驱使. 然而问题还是有的, select 只能支持

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题