Boost
kraussyin
这个作者很懒,什么都没留下…
展开
-
使用Boost.Asio编写通信程序
<br />摘要:本文通过形像而活泼的语言简单地介绍了Boost::asio库的使用,作为asio的一个入门介绍是非常合适的,可以给人一种新鲜的感觉,同时也能让体验到asio的主要内容。本文来自网络,原文在这里。<br />目录 [隐藏]ASIO的同步方式自我介绍示例代码小结ASIO的异步方式自我介绍示例代码小结ASIO的“便民措施”端点超时统一读写接口基于流的操作用ASIO编写UDP通信程序用ASIO读写串行口演示代码<br />Boost.Asio是一个跨平台的网络及底层IO的C++编程库,它使用现代C原创 2010-09-23 16:52:00 · 3487 阅读 · 2 评论 -
boost.asio服务器使用io_service作为work pool
<br />使用io_service作为处理工作的work pool,可以看到,就是通过io_service.post投递一个Handler到io_service的队列,Handler在这个io_service.run内部得到执行,有可能你会发现,io_services.dispatch的接口也和io_service.post一样,但不同的是它是直接调用而不是经过push到队列然后在io_services.run中执行,而在这个示例当中,显然我们需要把工作交到另一个线程去完成,这样才不会影响网络接收线程池的原创 2011-03-23 17:11:00 · 1171 阅读 · 0 评论 -
Asio资料收集及使用点滴
<br />Asio的架构:Boost.Asio 设计索引<br />概念性了解API:boost::asio中的同步与异步<br />Asio的Buffer: buffer几种用法,这些Buffer都只是引用外部的内存数据,如果需要拷贝和分配,记得使用boost::pool,这里还有一篇处理拷贝Buffer的文章<br />例子解析: Boost.asio的简单使用(timer,thread,io_service类)<br />如果照着例子弄出的第一个服务器无法收到客户端消息,试试这个asio::asyn原创 2011-03-23 17:08:00 · 1348 阅读 · 2 评论 -
boost::asio学习 - HTTP Server性能测试报告
<br />今天仔细看了asio的性能测试项目:Linux Performance Improvements,自己也动手实践了一下,不过测试的不是asio本身不同实现机制的性能(这个比较麻烦,需要下载多个asio的实现版本),只是简单测试了一下asio example中四个不同io_service模型的HTTP Server的性能,看看谁是牛b。<br /> <br />测试环境<br />linux服务器,CPU有4个processor,详细配置为:<br />Linux 2.6.9-67.ELsmp #原创 2011-03-23 17:05:00 · 1079 阅读 · 1 评论 -
boost::asio学习 - HTTP Server性能测试报告
<br />今天仔细看了asio的性能测试项目:Linux Performance Improvements,自己也动手实践了一下,不过测试的不是asio本身不同实现机制的性能(这个比较麻烦,需要下载多个asio的实现版本),只是简单测试了一下asio example中四个不同io_service模型的HTTP Server的性能,看看谁是牛b。<br /> <br />测试环境<br />linux服务器,CPU有4个processor,详细配置为:<br />Linux 2.6.9-67.ELsmp #原创 2011-03-23 16:49:00 · 915 阅读 · 0 评论 -
boost.asio服务器使用io_service作为work pool
<br />使用io_service作为处理工作的work pool,可以看到,就是通过io_service.post投递一个Handler到io_service的队列,Handler在这个io_service.run内部得到执行,有可能你会发现,io_services.dispatch的接口也和io_service.post一样,但不同的是它是直接调用而不是经过push到队列然后在io_services.run中执行,而在这个示例当中,显然我们需要把工作交到另一个线程去完成,这样才不会影响网络接收线程池的原创 2011-03-23 17:27:00 · 4211 阅读 · 0 评论 -
asio overview
理论基础<br />许多应用程序以某种方式和外界交互,例如文件,网络,串口或者终端。某些情况下例如网络,独立IO操作需要很长时间才能完成,这对程序开发形成了一个特殊的挑战。 <br />Boost.Asio库提供管理这些长时间操作的工具,并且不需要使用基于线程的并发模型和显式的锁。 <br />Asio库致力于如下几点: <br />移植性 <br />高负载 <br />效率 <br />基于已知API例如BSD sockets的模型概念 <br />易于使用 <br />作为进一步抽象的基础 <br /原创 2011-03-23 17:14:00 · 1276 阅读 · 0 评论 -
Boost asio学习笔记之一—— 使用strand支持多线程调用service_io的方法
<br />asio是一个跨平台的网络库,可以作为boost的一部分,也可以使用独立的asio部分。这里记录学习的笔记,作为参考。<br />感觉asio的关键就是io_service对象。所有的异步同步都跟这个有关。多线程方式下要asio::strand来解决。下面用timmer.5为例在进行研究。<br /> <br />(1)首先建立项目。<br />因为是新手,对于linux下的开发环境不熟悉,经过对比,我选择了用netbeans作为c++的ide工具。先在netbeans里面建立一个空项目,然后,原创 2011-03-23 17:11:00 · 4047 阅读 · 1 评论 -
多线程服务器的常用编程模型
<br />多线程服务器的常用编程模型 <br />陈硕 (giantchen_AT_gmail) <br />Blog.csdn.net/Solstice <br />2010 Feb 12 <br />本文 PDF 版下载: http://files.cppblog.com/Solstice/multithreaded_server.pdf<br />本文主要讲我个人在多线程开发方面的一些粗浅经验。总结了一两种常用的线程模型,归纳了进程间通讯与线程同步的最佳实践,以期用简单规范的方式开发多线程程序。 <原创 2011-03-23 17:10:00 · 1114 阅读 · 0 评论 -
[转]自己开发的基于boost::asio的网络引擎
<br />今天找到了贵论坛,发现坛主的很多想法和本人不谋而合,本人近1年主要精力都致力于开发一个大型多人在线游戏的基本架构和相关的技术模组。而我欣喜的发现我与坛主的研究方向正好相反:我是先从服务器端开始研究入手的,目前服务器端告一段落,正准备开始客户端的研发,在寻找客户端引擎的时候碰巧找到了这里。<br />我看到坛主的这个板块,了解到Orz正需要一些服务器方面的资料,在此我先奉上个人的服务器端的一些成果,希望能有所帮助。<br />(一)自己开发的一个基于boost::asio的网络引擎<br />首先原创 2011-03-23 17:06:00 · 1774 阅读 · 1 评论 -
boost::asio学习 - HTTP Server性能测试报告
<br />今天仔细看了asio的性能测试项目:Linux Performance Improvements,自己也动手实践了一下,不过测试的不是asio本身不同实现机制的性能(这个比较麻烦,需要下载多个asio的实现版本),只是简单测试了一下asio example中四个不同io_service模型的HTTP Server的性能,看看谁是牛b。<br /> <br />测试环境<br />linux服务器,CPU有4个processor,详细配置为:<br />Linux 2.6.9-67.ELsmp #原创 2011-03-23 16:55:00 · 2288 阅读 · 0 评论 -
boost::asio学习 - HTTP Server性能测试报告
<br />今天仔细看了asio的性能测试项目:Linux Performance Improvements,自己也动手实践了一下,不过测试的不是asio本身不同实现机制的性能(这个比较麻烦,需要下载多个asio的实现版本),只是简单测试了一下asio example中四个不同io_service模型的HTTP Server的性能,看看谁是牛b。<br /> <br />测试环境<br />linux服务器,CPU有4个processor,详细配置为:<br />Linux 2.6.9-67.ELsmp #原创 2011-03-23 16:56:00 · 1161 阅读 · 0 评论 -
boost::asio::Io_service
<br />构造函数<br /><br />构造函数的主要动作就是调用CreateIoCompletionPort创建了一个初始iocp。 <br /><br />Dispatch和post的区别<br /><br />Post一定是PostQueuedCompletionStatus并且在GetQueuedCompletionStatus 之后执行。 <br /><br />Dispatch会首先检查当前thread是不是io_service.run/runonce/poll/poll_once线程,如果原创 2011-03-23 17:25:00 · 786 阅读 · 0 评论 -
boost::asio::Io_service
<br />构造函数<br /><br />构造函数的主要动作就是调用CreateIoCompletionPort创建了一个初始iocp。 <br /><br />Dispatch和post的区别<br /><br />Post一定是PostQueuedCompletionStatus并且在GetQueuedCompletionStatus 之后执行。 <br /><br />Dispatch会首先检查当前thread是不是io_service.run/runonce/poll/poll_once线程,如果原创 2011-03-23 17:24:00 · 1480 阅读 · 0 评论 -
asio overview
理论基础<br />许多应用程序以某种方式和外界交互,例如文件,网络,串口或者终端。某些情况下例如网络,独立IO操作需要很长时间才能完成,这对程序开发形成了一个特殊的挑战。 <br />Boost.Asio库提供管理这些长时间操作的工具,并且不需要使用基于线程的并发模型和显式的锁。 <br />Asio库致力于如下几点: <br />移植性 <br />高负载 <br />效率 <br />基于已知API例如BSD sockets的模型概念 <br />易于使用 <br />作为进一步抽象的基础 <br /原创 2011-03-23 17:24:00 · 585 阅读 · 0 评论 -
boost::asio::Io_service
<br />构造函数<br /><br />构造函数的主要动作就是调用CreateIoCompletionPort创建了一个初始iocp。 <br /><br />Dispatch和post的区别<br /><br />Post一定是PostQueuedCompletionStatus并且在GetQueuedCompletionStatus 之后执行。 <br /><br />Dispatch会首先检查当前thread是不是io_service.run/runonce/poll/poll_once线程,如果原创 2011-03-23 17:16:00 · 799 阅读 · 0 评论 -
boost asio io_service学习笔记
<br />构造函数<br />构造函数的主要动作就是调用CreateIoCompletionPort创建了一个初始iocp。<br />Dispatch和post的区别<br />Post一定是PostQueuedCompletionStatus并且在GetQueuedCompletionStatus 之后执行。<br />Dispatch会首先检查当前thread是不是io_service.run/runonce/poll/poll_once线程,如果是,则直接运行。<br />poll和run的区别原创 2011-03-23 17:09:00 · 791 阅读 · 0 评论 -
使用Boost.Asio写的多线程TCP转发代理服务器
<br />应用场景是这样的:<br />客户端和服务器在不同的网段内,它们之间不能直接通过TCP连接,但是有一台机器(暂时称为转发器)有双网卡,两块网卡分别在客户端和服务器端的网段内,这样转发器就能分别和客户端即服务器建立连接,并来回传输数据。<br />设计思路是这样的:<br />当客户端连接到转发器后,转发器马上建立一条到服务器之间的连接,与服务器端的连接建立后,就同时异步地从客户端和服务器端接收数据到两个缓冲区中,一旦任何一方有数据接收,就通过另外一条连接将数据发送到另一方,发送完毕后又开始新一轮转载 2010-09-23 16:33:00 · 3577 阅读 · 1 评论 -
asio overview
理论基础<br />许多应用程序以某种方式和外界交互,例如文件,网络,串口或者终端。某些情况下例如网络,独立IO操作需要很长时间才能完成,这对程序开发形成了一个特殊的挑战。 <br />Boost.Asio库提供管理这些长时间操作的工具,并且不需要使用基于线程的并发模型和显式的锁。 <br />Asio库致力于如下几点: <br />移植性 <br />高负载 <br />效率 <br />基于已知API例如BSD sockets的模型概念 <br />易于使用 <br />作为进一步抽象的基础 <br /原创 2011-03-23 17:26:00 · 1591 阅读 · 0 评论