我正在寻找一个libcppa actor的示例代码,该代码侦听端口以获取新连接,然后生成新的actor以处理新连接。
任何帮助都将不胜感激。
由于
答案 0 :(得分:2)
你想让演员直接从套接字读/写吗?尚未实现适当的基于actor的IO抽象,但它是下一版本的libcppa的计划功能(敬请关注)。如果您只想通过网络分发演员,请查看publish / remote_actor函数对。
/编辑:
目前,您可以使用一些libcppa的实用程序来启动并运行阻止版本:
using namespace cppa;
spawn<detached>([] {
auto ack = network::ipv4_acceptor::create(4242);
for (;;) {
auto spair = ack->accept_connection();
spawn<detached>([spair] {
// spair.first is the input stream
// spair.second is the output stream
// please see http://neverlord.github.io/libcppa/namespacecppa_1_1network.html
});
}
);
这不可以很好地扩展,因为你将为每个连接创建一个线程,并且它不是很优雅。另外,在通过套接字接收的消息和从其他参与者接收的消息之间很难复用。一个更优雅的解决方案即将推出。 ;)