很多网络库介绍

1. ACE - Adaptive Communication Environment http://www.cs.wustl.edu/~schmidt/ACE.html 
2. Common G++ (GNU) http://www.gnu.org/software/commoncpp/ 
3. Socket++ version 1.11 http://www.cs.utexas.edu/users/lavender/courses/socket++/ 
4. Socket++ version 1.12+ http://www.linuxhacker.at/socketxx 
5. SocketMan http://web.media.mit.edu/~kbrussel/SocketMan/ 
6. Skstream - IOStream based socket library http://www.worldforge.org/dev/eng/libraries/skstream 
7. SimpleSocket - http://home.hetnet.nl/~lcbokkers/simsock.htm 
8. PTypes - C++ Portable Types Library (includes multithreading and networking) http://www.melikyan.com/ptypes 
9. OpenTransport - The Classic MacOS networking API; much different from Sockets, but should be considered during design phase 
10. CPPSocket - http://sourceforge.net/projects/cppsocket 
11. C++ Sockets Library - http://www.alhem.net/Sockets/ 
12. socketstream http://socketstream.sourceforge.net/ 
13. DTILib http://www.dtilib.dk/ 
14. Qts network module. http://doc.trolltech.com/4.1/qtnetwork.html 
15. Poco http://pocoproject.org/ 
16. NetClass http://netclass.sourceforge.net/ 
17. FEDLibrary http://sourceforge.net/projects/fedlibrary/ 
18. C++ Stream Compatible TCP/IP Sockets http://sourceforge.net/projects/cpp-sockets/ 
19. Asio http://asio.sourceforge.net or http://think-async.com/Asio/

*************************************************************************************************

ACE与ASIO之间关于Socket编程的比较

转载自:http://www.rosoo.net/a/201001/8254.html

ACE是一个很成熟的中间件产品,为自适应通讯环境,但它过于宏大,一堆的设计模式,架构是一层又一层,对初学者来说,有点困难。 
ASIO是基本Boost开发的异步IO库,封装了Socket,简化基于socket程序的开发。

最近分析ASIO的源代码,让我无不惊呀于它设计。在ACE中开发中的内存管理一直让人头痛,ASIO的出现,让我看到新的曙光,成为我新的好伙伴。简单地与ACE做个比较。

1.层次架构: 
ACE底层是C风格的OS适配层,上一层基于C++的wrap类,再上一层是一些框架(Accpetor, Connector,Reactor等),最上一层是框架上服务。 
ASIO与之类似,底层是OS的适配层,上一层一些模板类,再上一层模板类的参数化(TCP/UDP),再上一层是服务,它只有一种框架为io_service。

2.涉及范围: 
ACE包含了日志,IPC,线程,共享内存,配置服务等。 
ASIO只涉及到Socket,提供简单的线程操作。

3.设计模式: 
ACE主要应用了Reactor,Proactor等。 
而ASIO主要应用了Proactor。

4.线程调度: 
ACE的Reactor是单线程调度,Proactor支持多线程调度。 
ASIO支持单线程与多线程调度。

5.事件分派处理: 
ACE主要是注册handler类,当事件分派时,调用其handler的虚挂勾函数。实现ACE_Handler / ACE_Svc_Handler / ACE_Event_handler等类的虚函数。 
ASIO是基于函数对象的hanlder事件分派。任何函数都可能成为hanlder,少了一堆虚表的维护,调度上优于ACE。

6.发布方式: 
ACE是开源免费的,不依赖于第3方库, 一般应用使用它时,以动态链接的方式发布动态库。 
ASIO是开源免费的,依赖Boost,应用使用时只要include头文件,不需动态库。

7.可移植性: 
ACE支持多种平台,可移植性不存在问题,据说socket编程在linux下有不少bugs。 
ASIO支持多种平台,可移植性不存在问题。

8.开发难度: 
基于ACE开发应用,对程序员要求比较高,要用好它,必须非常了解其框架。在其框架下开发,往往new出一个对象,不知在什么地方释放好。 
基于ASIO开发应用,要求程序员熟悉函数对象,函数指针,熟悉boost库中的boost::bind。内存管理控制方面。

我个人觉得,如果应用socket编程,使用ASIO开发比较好,开发效率比较高。ACE适合于理论研究,它本来就是源于Douglas的学术研究。

时间: 2024-12-18 18:07:57

很多网络库介绍的相关文章

Alljoyn瘦客户端库介绍(官方文档翻译)

Alljoyn瘦客户端库介绍(1) 1.简介 本文档对AllJoynTM瘦客户端的核心库文件(AJTCL)进行了详尽的介绍.本文档介绍了系统整体架构,AllJoyn框架结构,并着重于介绍如何将嵌入式设备加入AllJoyn系统整体架构中.1.1目的 本文档介绍了如何使一个受限于功耗.计算能力和内存的设备(嵌入式设备)加入AllJoyn分布式系统.具体而言,本文档包括了对AllJoyn面向嵌入式系统的方面的介绍,并着重描述了基于AllJoyn的系统的各个组件是如何与嵌入式设备协作以构建一个基于接近式

boost.ASIO-可能是下一代C++标准的网络库

曾几何时,Boost中有一个Socket库,但后来没有了下文,C++社区一直在翘首盼望一个标准网络库的出现,网络上开源的网络库也有不少,例如Apache Portable Runtime就是比较著名的一个,也有像ACE这样重量级的网络框架.去年,Boost将ASIO纳入了自己的体系,由于Boost的影响力,ASIO有机会成为标准网络库.作者Chris Kohlhoff以ASIO为样本向C++标准委员会提交了一个网络库建议书,里面提到:ASIO的覆盖范围: Networking using TC

iOS第三方库介绍

1. AFNetworking 在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目.AFNetworking是一个轻量级的iOS.Mac OS X网络通信类库,现在是GitHub上第三大Objective-C库.它建立在NSURLConnection.NSOperation等类库的基础上,让很多网络通信功能的实现变得十分简单,因此,许多iOS应用开发都会使用到它. 支持HTTP请求和基于REST的网络服务(包括GET.POST.PUT.DELETE等): 支持AR

福运来源码搭建之xutils网络库

这是xutils 3 的 福运来源码搭建官方解释,企 娥:217 1793 408 xUtils 包含了orm, http(s), image, view注解, 但依然很轻量级(246K), 并且特性强大, 方便扩展: 稳定的基石: AbsTask和统一的回调接口Callback, 任何异常, 即使你的回调方法实现有异常都会进入onError, 任何情况下onFinished总会让你知道任务结束了. 基于高效稳定的orm工具, http模块得以更方便的实现cookie(支持domain, pat

python 常库介绍及安装方法

文大赛,秀绝招,赢无人机! python 常库介绍及安装方法 标签: PYTHON库 2016-10-13 15:32 798人阅读 评论(0) 收藏 举报  分类: 其他(33)  bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheetahcherrypy:一个WEB frameworkctypes:用来调用动态链接库DBUtils:数据库连接池django:一个WEB frameworkdocutils:用来写文档的dpkt:数据包的解包和组包My

Muduo网络库实战(二):实现服务器与客户端的连接

1. 方案的确定 1)基本需求 用户1000+, IO压力不大: 多个客户端打开网站,输入查询字符串strclient,发送给服务器=>服务器接收客户端发过来的数据并处理,将结果返回给客户端: 2)并发网络服务程序设计方案 详见:<Muduo_网络库使用手册>的1.6节-<详解Muduo多线程模型> @ muduo中TcpServer模式的选择:多线程模式 模式一:单线程,accept与TcpConnection用同一个线程做IO; 模式二:多线程,accept与EventL

利用百度词典API和Volley网络库开发的android词典应用

 关于百度词典API的说明,地址在这里:百度词典API介绍 关于android网络库Volley的介绍说明,地址在这里:Android网络通信库Volley 首先我们看下大体的界面布局! 再帖张最终的效果图 看到效果图,应该知道布局很简单了对吧: 布局xml文件如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.a

【转】OpenGL相关函数库介绍

原文:http://blog.chinaunix.net/uid-20638550-id-1909182.html OpenGL 函数库相关的API有核心库(gl).实用库(glu).辅助库(aux).实用工具库(glut).窗口库(glx.agl.wgl)和扩展函数库等. 从图1可以看出,gl是核心,glu是对gl的部分封装.glx.agl.wgl 是针对不同窗口系统的函数.glut是为跨平台的OpenGL程序的工具包,比aux功能强大.扩展函数库是硬件厂商为实现硬件更新利用OpenGL的扩

基于c++11新标准开发一个支持多线程高并发的网络库

背景 新的c++11标准出后,c++语法得到了很多的扩展,比起以往任何时候都要灵活和高效,提高了程序编码的效率,为软件开发人员节省了不少的时间. 之前我也写过基于ACE的网络服务器框架,但ACE毕竟有些臃肿,内部对象关系错综复杂,容易给人造成只见树木不见森林的错觉. 所以打算用c++11开发一个较为简洁,高效,支持高并发的网络库. 开源         花了两三周,终于把基础的结构开发完成,代码也开源在github上,网址是 https://github.com/lichuan/fly 欢迎各位