前言(CSDN也有Markdown了,好开森)

实战出精华

用具体的C++网络编程例子来提升你的逼格

John Torjo

Boost.Asio C++ 网络编程

Copyright 2013 Packt Publishing

关于作者

做为一个权威的C++专家,在John Torjo超过15年的编程生涯中,除了偶尔用C#和Java写程序,他把大部分的时间都贡献给了C++。

他也很喜欢在C++ Users Journal和其他杂志上写一些关于编程的文章。

闲暇的时候,他喜欢玩扑克和开快车。他有很多自由职业,其中有一个就把他对扑克和编程的爱好结合起来。你可以通过john.code@torjo.com联系到他。

我要感谢我的朋友Alexandru Chis, Aurelian Hale, Bela Tibor Bartha, Cristian Fatu, Horia Uifaleanu, Nicolae Ghimbovschi以及Ovidiu Deac对本书提出的反馈和意见。同时我也要感谢Packt各位对我时不时错过截稿日期行为的理解。然后最需要感谢的是Chris Kohlhoff,Boost.Asio的作者,是他写出了一个如此伟大的库。

把这本书献给我最好的朋友Darius。

关于评审员

Béla Tibor Bartha

一个使用过各种技术和语言进行开发的专业软件工程师。尽管在过去的4年里,他做的是iOS和OSX应用开发,但是C++陪伴他度过了他早期个人游戏项目开发的激情岁月。

我要感谢John,因为他我才能做这本书的评审

Nicolae Ghimbovschi

一个参加各种各样的C++项目超过5年的天才个人开发者。他主要参与一些企业通信工程的项目。他是一个狂热的Linux爱好者,他喜欢利用不同的操作系统、脚本工具、编程语言进行测试和实验。除了编程,他还喜欢骑自行车、瑜伽和冥想。

我要感谢John让我来评审这本书

关于译者

非主流程序猿mmoaay,技术很烂,喜欢平面设计、鼠绘、交友、运动和翻译,但是确作为一只程序猿混迹在IT行业。热爱开源,技术烂就只好做做设计和翻译的工作。

微博:

关于avplayer

中国第一技术社区。

目录

前言

第一章:Boost.Asio入门

什么是Boost.Asio?历史依赖编译 Boost.Asio重要的宏同步VS异步异常VS错误代码Boost.Asio中的多线程不仅仅是网络计时器io_service类总结

第二章:Boost.Asio基本原理

网络APIBoost.Asio命名空间IP地址端点Sockets同步错误代码Socket成员函数其他注意事项read/write/connect自由函数connect函数read/write函数异步编程为什么要异步?异步run(),run_one(),poll(),poll_one()持续运行run_one(),poll(),poll_one()函数异步工作异步post() VS dispatch() VS wrap()保持运行总结

第三章:回显服务端/客户端

TCP回显服务端/客户端TCP同步客户端TCP同步服务端TCP异步客户端TCP同步服务端代码UDP回显服务端/客户端UDP同步回显客户端UDP同步回显服务端总结

第四章:客户端和服务端

同步客户端/服务端同步客户端同步服务端异步客户端/服务端异步客户端异步服务端总结

第五章:同步VS异步

同步异步混合编程客户端和服务端之间消息的互相传递客户端软件中的同步I/O服务端软件中的同步I/O同步服务端中的线程客户端软件中的异步I/O服务端软件中的异步I/O异步服务端中的线程异步操作代理实现总结

第六章:Boost.Asio-其他特性

std streams和std buffer I/OBoost.Asio和STL流streambuf类处理streambuf对象的自由函数协程总结

第七章:Boost.Asio-进阶

Asio VS Boost.Asio调试处理程序跟踪信息例子处理程序跟踪文件SSLBoost.Asio的Windows特性流处理随机存储处理对象处理Boost.Asio的POSIX特性本地sockects连接本地socketsPOSIX文件描述符Fork总结

索引

前言

网络编程由来已久,并且是一个极富挑战性的任务。Boost.Asio对网络编程做了一个极好的抽象,从而保证你用少量的编程就可以创造出一个优雅的客户端/服务端软件。在创造的过程中,它能让你体会到极大的乐趣。而更为有益的是:Boost.Asio包含了一些非网络的特性,用Boost.Asio写出来的代码紧凑、易读,而且如果你按照我在书中所讲的来做,你的代码会无懈可击。

这本书涵盖了什么?

第一章:Boost.Asio入门将告诉你Boost.Asio是什么?怎么编译它?顺带着会有一些例子。你会发现Boost.Asio不仅仅是一个网络库。同时你也会接触到Boost.Asio中最核心的类io_service。

第二章:Boost.Asio基本原理包含了你必须了解的内容:什么时候用Boost.Asio?我们将深入了解异步编程——一种比同步更需要技巧,且更有乐趣的编程方式。这一章也是在开发你自己的网络应用时需要回过头来把里面的内容作为参考的一章。

第三章:回显服务端/客户端将会告诉你如何实现一个小的客户端/服务端应用;也许这会是你写过的最简单的客户端/服务端应用。回显应用就是一个把客户端发过来的任何消息发送回去然后关闭客户端连接的服务。我们会先实现一个同步的应用,然后再实现一个异步的应用,这样你就可以非常容易地看到它们之间的不同。

第四章:客户端和服务端会深入讨论如何用Boost.Asio创建一个简单的客户端/服务端应用。我们将讨论如何避免诸如内存泄漏和死锁的缺陷。所有的程序都是简单的框架,从而使你更方便地对他们进行扩展并满足你的需求。

第五章:同步VS异步会带你了解那些当你选择同步还是异步方式时需要考虑的事情。首先就是避免混淆它们。在这一章,我们会发现每个类型应用的实现、测试和调试是多么的容易。

第六章:Boost.Asio的其他特性将带你了解Boost.Asio一些不为人知的特性。你会发现,虽然std streams和streambufs有一点点难用,但是却表现出了它们得天独厚的优势。最后,你会看到姗姗来迟的Boost.Asio协程的入口,它可以让你用一种更易读的方式来写异步代码。(就好像它是同步的一样)

第七章:Boost.Asio进阶会处理一些Boost.Asio的进阶问题。虽然在日常编程中你不需要深入研究它们,但是了解它们对你有益无害(Boost.Asio高级调试,SSL,Windows特性,POSIX特性等)。

读这本书你需要准备什么?

为了编译Boost.Asio以及运行本书中的例子,你需要一个现代编译器。例如,Visual Studio 2008及其以上版本或者g++ 4.4及其以上版本

这本书是为谁准备的?

这本书对于那些需要进行网络编程却不想深入研究复杂的原始网络API的开发者来说是一个福音。所有你需要的只是Boost.Asio提供的一个简单抽象。作为著名的Boost C++库的一部分,你只需要额外添加几个#include文件即可转换到Boost.Asio。

有了你,我不再作孤飞于蓝天的雄鹰,

前言(CSDN也有Markdown了,好开森)

相关文章:

你感兴趣的文章:

标签云: