Chinaunix

标题: 请推荐Linux下网络开发的类库 [打印本页]

作者: kytexzy    时间: 2009-07-23 12:15
标题: 请推荐Linux下网络开发的类库
现在需要在Linux平台做网络开发,本打算用boost.asio,但上网搜了搜说它效率不爽,对ACE不太了解,请有经验的指个方向。

谢谢!


作者: xWander    时间: 2009-07-23 13:10
PoCo
作者: kytexzy    时间: 2009-07-23 13:51
poco --The C++ Portable Components

很小很强大,用得多吗?



[ 本帖最后由 kytexzy 于 2009-7-23 14:05 编辑 ]
作者: swxlion    时间: 2009-07-23 13:56
原帖由 kytexzy 于 2009-7-23 12:15 发表
现在需要在Linux平台做网络开发,本打算用boost.asio,但上网搜了搜说它效率不爽,对ACE不太了解,请有经验的指个方向。

谢谢!



哦?哪篇文章?I want to see:)
因为原来看boost的文档,说它的asio是面对以千为数量级的连接的~~~
不知道现在怎样宣称了~~~~
作者: kytexzy    时间: 2009-07-23 14:23
POCO的I/O设计似乎是使用Reactor模式,不知道它的效率比Boos.Asio中的Proactor模式的异步I/O高还是低哟?


作者: hlxxxx    时间: 2009-07-23 15:35
asio处理高并发的效率还可以。 单连接吞吐稍微弱点。  如果选用, 最好封装好, 别让boost代码吞噬你的代码, 那样最后不可收拾。 呵呵。


asio在windows下效率是最好的。 基本接近自己在iocp上开发的效率。 在linux下, 他默认选用epoll, 但中间为了做了层stream cache, 效率稍有损失。 而且他的epoll规则用的不
太合理, 可以自己修改他的代码, 达到自己的需求。

在freebsd下, 他默认是select的, 要自己修改他的代码条件编译, 才可以支持kqueue,

似乎boost社区跟freebsd那帮人有愁, 呵呵, 他们的主测试平台也不支持freebsd. 却支持apple的大部分bsd kernel 系统。

[ 本帖最后由 hlxxxx 于 2009-7-23 15:38 编辑 ]
作者: swxlion    时间: 2009-07-23 16:49
那参考一下我签名的项目,哈哈~~~
作者: kytexzy    时间: 2009-07-23 16:52
http://libasdl.sourceforge.net
好倒是好,我觉得Boost和PoCo更好些,

…………

作者: zpp71    时间: 2009-07-23 17:12
极力推荐网络通信中间件ICE!
作者: kytexzy    时间: 2009-07-23 23:56
ICE是远程对象的封装
ACE是通讯(如SOCKET)的封装

ICE侧重于远程RPC解决方案,而ACE是通用网络编程框架。
在应用层面上,ACE所处位置比ICE要低。

ICE是与CORBA,.NET Remoting,Web Service同层次的东西,ACE是个网络编程库,准确的说是个C++对Socket网络操作的封装.

回过来说 ICE,虽然我很欣赏他,但是前几天一个在大型分布式开发领域很有经验的前辈说,跟ACE 相比,这个东西太高层了,真正开发超大规模、超高性能应用的时候,还是得ACE上。再不然就直接用C。

不过ICE用C++写后台应该比Java高效多了。

ICE是好东西啊!



[ 本帖最后由 kytexzy 于 2009-7-23 23:58 编辑 ]




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2