第一次翻译,希望大家多多指正
实战出精华
Boost.Asio C++ 网络编程
用具体的C++网络编程例子来提升你的技能
John Torjan
用具体的C++网络编程例子来提升你的技能
Copyright © 2013 Packt Publishing
版权所有,除了在鉴定文章或者评论中进行简单引用,如果没有经过出版者事先的书面授权,该书的任何部分都不能被转载、存储在检索系统中、或者以任何形式和方式传阅。
在这本书准备发行之前,我们已经尽我们最大的努力去保证书中信息的准确性。但是,这本书中包含的明示或者暗示的信息都没有保证。无论是本书作者、Packt Publishing以及它的经销商和分销商都不承担由这本书直接或者间接造成的任何损害。
Packt Publishing将尽最大努力,用适当的大写字母来对书中提到的所有公司和产品进行商标标识。但是,Packt Publishing不能保证这些信息的准确性。
第一版发布:2013年1月
产品编号:1120213
由Packt Publishing Ltd.发布
工作人员
作者:John Torjo
协调人:Sherin Padayatty
评审:Béla Tibor Bartha、Nicolae Ghimbovschi
校对:Claire Cresswell-Lane
组稿编辑:Erol Staveley
索引编制:Monica Ajmera Mehta
责任编辑:Ameya Sawant
图像处理:Valentina D'silva、Aditi Gajjar
技术编辑:Kaustubh S. Mayekar
协调出版:Conidon Miranda
封面:Conidon Miranda
关于作者
做为一个权威的C++专家,在John Torjo超过15年的编程生涯中,他大部分的时间都用在了C++上。偶尔,他也用C#和Java写程序。
他也很喜欢在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让我来评审这本书
----------------------------------------------------------------------------------------------------------
目录前言第一章:Boost.Asio入门
什么是Boost.Asio?
历史
依赖
编译 Boost.Asio
重要的宏
同步VS异步
异常VS错误代码
Boost.Asio中的多线程
不仅仅是网络
Timers
io_service类
第二章:Boost.Asio基本原理 网络API
Boost.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/O
Boost.Asio和STL流
streambuf类 处理streambuf对象的*函数
协程
总结
第七章:Boost.Asio-进阶 Asio VS Boost.Asio
调试
处理程序跟踪信息
例子
处理程序跟踪文件
SSL
Boost.Asio的Windows特性
流处理
随机存储处理
对象处理
Boost.Asio的POSIX特性
本地sockects
连接本地sockets
POSIX文件描述符
Fork
总结
索引