5

我正在寻找 libcppa 演员的示例代码,该演员在端口上侦听新连接,然后生成新演员来处理新连接。

任何帮助,将不胜感激。

谢谢

4

1 回答 1

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
        });
    }
);

不能很好地扩展,因为您将为每个连接创建一个线程,而且它不是很优雅。另外,很难在通过套接字接收的消息和从其他参与者接收的消息之间进行多路复用。一个更优雅的解决方案正在开发中。;)

于 2013-06-11T12:45:13.693 回答