c++ - 在套接字连接上生成 actor 的 libcppa actor

标签 c++ sockets actor c++-actor-framework

我正在寻找 libcppa actor 的示例代码,它在端口上监听新连接,然后生成新的 actor 来处理新连接。

如有任何帮助,我们将不胜感激。

谢谢

最佳答案

您是否希望 Actor 直接从套接字读取/写入套接字?尚未实现适当的基于 actor 的 IO 抽象,但它是下一个版本的 libcppa 的计划功能(敬请期待)。如果您只想通过网络分发您的 actor,请查看 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
        });
    }
);

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

关于c++ - 在套接字连接上生成 actor 的 libcppa actor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17041406/

相关文章:

sockets - 如何使用单线程在 TCP 上实现全双工 channel ?

java - 使用 Netty 理解并解决文件传输问题

java - 在TFTP客户端服务器应用程序中,UDP数据报如何修改IP头?

java - Akka Java FSM 示例

java - LibGDX - 修改组会影响 child 吗?

c++ - 逗号运算符如何工作

c++ - MSVC std::_Pad 无虚拟析构函数

c++ - 如何在C/C++中实现定时器

c++ - 使用#include 进行 unordered_map 初始化

scala - 在接收方法中调用 Future 并在此之后停止 actor