您的位置:首页 > 其它

ACE安装配置--ubuntu技巧

2008-09-11 10:58 288 查看
ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework),在其中实现了许多用于并发通信软件的核心模式。ACE提供了一组丰富的可复用C++ Wrapper Facade(包装外观)和框架组件,可跨越多种平台完成通用的通信软件任务,其中包括:事件多路分离和事件处理器分派、信号处理、服务初始化、进程间通信、共享内存管理、消息路由、分布式服务动态(重)配置、并发执行和同步,等等。
不再继续介绍了,我来介绍一下ACE在ubuntu下的安装,并运行一个简单的示例。

sudo apt-get install libace-dev libace-doc libace5.4.7c2a libssl-dev这样,一个完整的开发以及运行环境就建立起来了。
下面,写一个简单的程序来体验一下这个框架。

[code]
#include <ace/INET_Addr.h>
#include <ace/SOCK_Connector.h>

#include <ace/SOCK_Stream.h>
int main(int argc, char *argv[])
{
const char *pathname =
argc > 1 ? argv[1] : "/";
const char *server_hostname =
argc > 2 ? argv[2] : "www.herofit.com";
ACE_SOCK_Connector connector;
ACE_SOCK_Stream peer;
ACE_INET_Addr peer_addr;
if (peer_addr.set(80, server_hostname) == -1 )
return 1;
else if (connector.connect( peer, peer_addr) == -1)
return 1;
char buf[BUFSIZ];
iovec iov[3];
iov[0].iov_base=(void*)"GET ";
iov[0].iov_len=4;
iov[1].iov_base=(void*)pathname;
iov[1].iov_len=strlen(pathname);
iov[2].iov_base=(void*)" HTTP/1.0/r/n/r/n";
iov[2].iov_len=13;
if (peer.sendv_n(iov, 3) == -1)
return 1;
for(ssize_t n;(n = peer.recv(buf,sizeof(buf)))>0;)
ACE::write_n(ACE_STDOUT, buf, n);
return peer.close();
}
编译上面的程序:
g++ testace.cpp -o testace -lACE运行:
./testace index.php www.herofit.com

[/code]最后提醒一点,ACE的授权许可证并不要求使用它的软件开放源码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: