2008-01-13
SPNetKit:http/smtp/pop3/memcached 的客户端库
关键字: socket memcached client c++ http smtp pop3
SPNetKit 主要是一个常见应用层协议的客户端库,使用 C++ 实现,目前实现了 http,smtp,pop3,memcached 。
对于每个客户端都带有一个命令行的示范例子。
http/smtp/pop3 除了 TCP 实现之外,也能支持 SSL (基于 openssl)。
memcached client 支持了最新的 memcached 1.2.4 中新增加的 'append', 'prepend', 'gets', and 'cas' 命令。
除了这些客户端实现之外,还包括一个读取 ini 配置文件的类,base64 编码和解码类。
主页:http://code.googl ...
- 17:41
- 浏览 (1306)
- 评论 (1)
- 分类: OpenSource项目
- 发布在 C++语言 圈子
SPProcPool 是一个 linux/unix 平台上的进程池服务器框架,使用 c++ 实现。主要包含了几种不同类型的进程池的实现:
一个基于 Leader/Follower 模式的服务器端进程池(类似 apache 的 prefork 模型);
一个组合了 Prefork 和线程池的服务器端框架(类似 apache 的 worker 模型);
一个基于文件句柄传递的服务器端进程池;
一个用于非服务器端的,能够在多线程或事件驱动环境下使用的进程池。
主页:http://code.google.com/p/spprocpool/
下载:spprocpool
关于进程池服务器框架,在《un ...
- 11:30
- 浏览 (1038)
- 评论 (5)
- 分类: OpenSource项目
- 进入论坛
- 发布在 C++语言 圈子
在 3 年前因为工作需要,搞过一段时间 jabberd 1.4 ,那时被jabberd 1.4 的代码搞的晕头转向。当时就在想要自己实现一个 jabber 服务器。在逐步实现了 spxml , spserver ,spdict 这 3 个库之后,实现 jabber 的时机终于到了。
http://code.google.com/p/sptalk/
经过几天的编码之后,终于可以成功地用两个客户端互发信息了。目前实现了注册,登录,添加好友,互发信息功能。
由于对 jabber 协议不熟,所以这次的实现在事前没有认真地做系统的架构设计,目前是基于单机,单进程的方式来实现的。这次姑且作为一次快速原 ...
- 14:50
- 浏览 (938)
- 评论 (1)
- 分类: OpenSource项目
实现 spcached 的目的:不是与 memcached 进行竞争,只是为了测试。
最初想到要实现 spcached 的时候,是因为想对 spserver 这个框架做一个压力测试。当时想用作个简单的 http 服务器,然后用 apache 的 ab 工具进行测试。后来觉得如果做测试,最好能有一个对比,因此就想起了 memcached 来。并且刚好 memcached 和 spserver 都是基于 libevent 的。
memcached 是公认的高性能服务器,而且里面完全不涉及文件的 IO 操作,适合用来衡量以下几个方面:单线程 event-driven VS. 多线程,内存池 VS ...
- 14:43
- 浏览 (4614)
- 评论 (7)
- 分类: OpenSource项目
- 进入论坛
- 发布在 C++语言 圈子
看到这个题目,估计很多人会问:为什么要再实现一个 web 服务器?
这里有几个原因:
1.这是一个 web 服务器框架,不是一个完整的 web 服务器。也就是说 SPWebServer 提供的是一套 API 和类库,可以方便地集成到现有的应用程序中。可以称 SPWebServer 为 embedded web server 。
2.有些时候,我们需要的不是一个功能强大完整的 web 服务器(例如 apache ),我们只是需要一个能提供最基本的 http 功能的服务器框架。比如要用 C/C++ 实现 XML-RPC,JSON-RPC 服务器端,或者为 jabberd 实现一个 http ...
- 16:07
- 浏览 (4588)
- 评论 (5)
- 分类: OpenSource项目
- 进入论坛
- 发布在 C++语言 圈子
2007-04-27
spdict:红黑树(RedBlackTree),平衡树(BalancedTree),SkipList 的实现
关键字: dictionary btree rbtree binary search
对着 MIT 的 《Introduction to Algorithms, Second Edition 》 看了一段时间,对里面的提到的几种字典数据结构算法很感兴趣,因此照着书上的描述做了一些实现。使用 C++ 实现了:BinarySearchTree, RedBlackTree, BalancedTree, SkipList, SortedArray 。
源代码下载:
http://spdict.googlecode.com/files/spdict-0.2.src.tar.gz
http://code.google.com/p/spdict/downloads/list
只实现了字 ...
- 12:11
- 浏览 (2511)
- 评论 (0)
- 分类: OpenSource项目
- 进入论坛
- 发布在 C++语言 圈子
2007-03-14
SPServer : 一个基于线程池(包括HAHS和LF)的高并发 server 框架
关键字: c++ libevent half-sync/half-async leader/follower 并发服务器
spserver 是一个实现了半同步/半异步(Half-Sync/Half-Async)和领导者/追随者(Leader/Follower) 模式的服务器框架,能够简化 TCP server 的开发工作。
spserver 使用 c++ 实现,目前实现了以下功能:
1.封装了 TCP server 中接受连接的功能;
2.使用非阻塞型I/O和事件驱动模型,由主线程负责处理所有 TCP 连接上的数据读取和发送,因此连接数不受线程数的限制;
3.主线程读取到的数据放入队列,由一个线程池处理实际的业务。
4.一个 http 服务器框架,即嵌入式 web 服务器(请参考: SPWebServer:一个基 ...
- 15:13
- 浏览 (23529)
- 评论 (55)
- 分类: OpenSource项目
- 进入论坛
- 发布在 C++语言 圈子
2007-01-17
spxml:使用 state pattern 实现 xml pull/dom parser
关键字: xml pull dom parser state pattern
spxml 是一个实现了 pull 和 dom 两种解释模型的 xml 解释器。
spxml 使用 c++ 实现,除系统库之外,不依赖第三方库,目前实现了以下功能:
1.实现了 xml pull parser 的功能;
2.基于 xml pull parser 构造一个 dom tree;
3.能够对 dom tree 进行修改;
4.能把 dom tree 重新序列化为一个字符流;
5.处于底层的 xml pull parser 是一个面向流的解释器,用户不需要一次把一个完整的 xml 字符流传递给 spxml ,极端情况下,可以每次只传入一个字符。解释到一个文档结束时,自动生成 EndD ...
- 22:26
- 浏览 (3994)
- 评论 (3)
- 分类: OpenSource项目
- 进入论坛
- 发布在 C++语言 圈子
想找个轻便的 thread pool 实现,结果发现网上能找到的都是一些很重量级的,如 boost,ACE 里面的。唯有自己照着下面的需求实现了一个
http://paul.rutgers.edu/~csgates/CS416/proj2/index.html
源代码下载:
http://code.google.com/p/spserver/downloads/list
http://spserver.googlecode.com/files/threadpool-0.1.src.tar.gz
从 0.2 版开始,移植到了 windows 平台,直接使用 windows 的 thread ...
- 16:27
- 浏览 (7029)
- 评论 (7)
- 分类: OpenSource项目
- 进入论坛
- 发布在 C++语言 圈子
- 浏览: 79325 次

- 详细资料
搜索本博客
我的相册
vim
共 2 张
共 2 张
最近加入圈子
最新评论
-
集成 IOCP 到 Libevent
去找了 memcached for win32 的源代码,结果可以顺利编译,并且 ...
-- by iunknown -
集成 IOCP 到 Libevent
qiezi 写道GetQueuedCompletionStatusEx也支持超时 ...
-- by iunknown -
集成 IOCP 到 Libevent
GetQueuedCompletionStatusEx也支持超时,用它代替sel ...
-- by qiezi -
集成 IOCP 到 Libevent
linux/solaris上的aio有多种回调/通知方式,可能和libevent ...
-- by qiezi -
集成 IOCP 到 Libevent
SPServer是一个很不错的框架,受到启发,我用boost::asio实现了一 ...
-- by wow






评论排行榜