- 博客(17)
- 资源 (9)
- 问答 (1)
- 收藏
- 关注
转载 搭建POCO-1.4.6p2+VS2008开发环境
一、安装1、下载安装Microsoft Visual Studio 20082、下载安装POCO C++ Liberary,下载地址:http://pocoproject.org/download/;3、环境变量中添加%POCO_HOME%=D:/poco-1.4.6p24、解压poco-1.4.6p2.zip到%POCO_HOME%5、编译:a 编
2014-06-20 10:06:00 1439
转载 libevent+多线程的服务器模型
最近在看memcached的源码,觉得它那种libevent+多线程的服务器模型真的很不错,我将这个模型封装成一个C++类,根据我的简单测试,这个模型的效率真的很不错,欢迎大家试用。这个类的使用方法很简单(缺点是不太灵活),只要派生一个类,根据需要重写以下这几个虚函数就行了://新建连接成功后,会调用该函数virtual void ConnectionEvent(Conn *conn
2014-06-18 13:42:46 2091
转载 网络库总结
开源C/C++网络库比较http://blog.csdn.net/langeldep/article/details/6976120在开源的C/C++网络库中,常用的就那么几个,在业界知名度最高的,应该是ACE了,不过是个重量级的大家伙,轻量级的有libevent, libev,还有 Boost的ASIO。ACEhttp://www.cs.wustl.edu/~schmid
2014-06-18 10:22:39 766
原创 EPOLL事件有两种模型
EPOLL事件有两种模型:Edge Triggered (ET)Level Triggered (LT)假如有这样一个例子:1. 我们已经把一个用来从管道中读取数据的文件句柄(RFD)添加到epoll描述符2. 这个时候从管道的另一端被写入了2KB的数据3. 调用epoll_wait(2),并且它会返回RFD,说明它已经准备好读取操作4. 然后我们读取了1KB的数据
2014-06-17 19:15:53 649
转载 linux提供了select、poll、epoll接口来实现IO复用,三者的原型如下所示,本文从参数、实现、性能等方面对三者进行对比。
int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);int poll(struct pollfd *fds, nfds_t nfds, int timeout);int epoll_wait(int epfd, struct epoll
2014-06-17 18:39:20 674
原创 POCO库 Foundation::Thread模块(二) 主动对象
Poco为使用者提供了一套基于多线程的主动对象,它通过使用多线程来高效地完成任务,而对于调用者却屏蔽了多线程的种种顾虑。甚至都看不出它使用了多线程的痕迹。Poco中一共有三种主动对象:activity,acitivityMethod,Activity对象 Acitvity对象是主动对象中最简单的一种对象,它通过对象调用的方式实现通过多线程完成任务,并且要求入口函数是没有参数和返
2014-06-06 14:13:11 1096
转载 SOCI、LiteSQL、POCO数据库访问类库对比
最近在做视频的开发,其中视频的设备接入管理服务器、流媒体管理服务器、中心服务器都涉及到了数据库的操作,同时需要兼容大多数版本的数据库,包括mysql、sqlite、oracle。公司原来使用的是ado来进行数据库的开发的, 但是考虑到目前需要兼容linux,目前使用Poco框架封装的数据库模块进行开发。根据项目情况我对soci、litesql、poco这三个框架进行了简单的学习
2014-06-06 14:11:40 1080
原创 Poco vs Boost
POCO的优点: 1) 比boost更好的线程库,特别是一个活动的方法的实现,并且还可设置线程的优先级。 2) 比 boost:asio更全面的网络库。但是boost:asio也是一个非常好的网络库。 3) 包含了一些Boost所不包含的功能,像XML,数据库接口等。 4) 跟Boost相比,集成度更高,是更加统一的一个库。 5) Poco的c++代码更清洁,现代和易理解。对不
2014-06-06 14:10:38 902
转载 POCO库 Foundation::SharedLibrary模块分析
Foundation中的SharedLibrary实现跨平台的dll动态加载。 具体使用方法和简介可见:ShareLibrary官方文档SharedLibrary导出函数SharedLibrary类的简单用法 通过SharedLibrary可以实现函数导出和类导出,函数导出是最简单的,Dl
2014-06-06 14:04:59 956
转载 基于 POCO 框架的 TCP 连接分流程序
介绍下面的程序实现了对 TCP 连接的分流,即将一个 TCP 连接的流量分布到多个 TCP 连接上进行传输。本程序的主要作用是在特定网络环境下提升通过 TCP 连接的 OpenVPN 服务的速率,使之充分利用带宽。程序的主要复杂之处在于单生产者—多消费者、多生产者—单消费者两种同步方式的实现。代码 [Cpp] view plaincopy
2014-06-06 14:01:25 2381
转载 基于 POCO 框架的 C++ 版搜狗代理程序
搜狗代理服务器程序,网上已经有用 Python 实现的版本。这个版本在某些情况下(例如迅雷下载)性能不够好,于是我用 C++ 实现了一个版本,基于POCO 框架开发,应当具有不错的可移植性。完整的源代码如下:#include #include #include #include #include #include #include #include #include #i
2014-06-06 13:59:38 823
转载 POCO库 Foundation::Thread模块 多线程与线程池支持
在C++语言中,我们通过_beginThreadex或CreateThread来创建线程(最好使用前者,关于两者区别和线程基础知识可参见《Windows核心编程》),并且提供一个原型为void MyFunc(void pParam)入口函数来完成任务。在Poco中,将入口函数抽象为一个类Runnable,该类提供void run()接口,用户需要继承至该类来实现自定义的入口函数。Poco将线程也抽
2014-06-06 13:55:38 3747
原创 POCO日志框架
(本文翻译自:http://pocoproject.org/slides/110-Logging.pdf)消息,日志和通道格式化性能注意事项1 日志框架2 消息类(Logger Message)POCO使用Poco::Message 对象存储和传递日志信息。#include "Poco/Message.h"日志消息(Message)包括:
2014-06-03 09:47:49 2658
原创 gSOAP简单多线程服务器程序
gSOAP简单多线程服务器程序 一 gSOAP需要的头文件://gsoap ns service name: calc//gsoap ns service style: rpc//gsoap ns service encoding: encoded//gsoap ns service namespace: http://127.0.0.1:8089/calc
2014-06-01 16:23:24 748
转载 线程池的原理和实现
线程池的原理和实现 一. 线程池的简介 通常我们使用多线程的方式是,需要时创建一个新的线程,在这个线程里执行特定的任务,然后在任务完成后退出。这在一般的应用里已经能够满足我们应用的需求,毕竟我们并不是什么时候都需要创建大量的线程,并在它们执行一个简单的任务后销毁。 但是在一些web、email、database等应用里,比如彩铃,我
2014-06-01 15:49:07 792
原创 Poco线程池
Poco::ThreadPool提供线程池功能,减少线程的创建和销毁所带来的开销,适合在服务器上应用。创建线程池时指定最少运行线程数和线程池的最大容量,若不指定则采用默认值,取2和16 。线程池的实现机制:有一部分线程始终处于运行状态,但阻塞在Event的wait调用上,所以处于休眠状态,开销并不大。如果我们需要一个线程来运行一段代码(在Poco中,用Runnable的子类表示一个target),
2014-06-01 15:16:38 2071
lua实现语法树的解析器和执行器
2018-04-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人