【问题标题】:N-party client-to-client communication using C++ and Boost::Asio使用 C++ 和 Boost::Asio 的 N 方客户端到客户端通信
【发布时间】:2012-02-14 10:22:31
【问题描述】:

我一直在使用 Boost::Asio 并检查它在 n 个独立用户协作计算共享输入上的函数时的能力。

在某一时刻,我需要让每个用户向所有其他用户发送(分别接收)一些数据。

我想实际上我正在寻找每个用户的“主动”建立,而不是互联网上常见的客户端-服务器示例。

我有允许用户向另一个用户发送数据的工作代码。我很难看到我应该如何让所有用户同时相互发送和接收。我似乎也无法同时概括多个async_connects

对于如何实现这种协议有什么建议吗?我应该考虑使用线程来管理发送和接收吗?

【问题讨论】:

    标签: c++ unix network-programming boost-asio


    【解决方案1】:

    如果您使用基于 Unix 的操作系统,例如 Linux,我会从使用 C 编程语言(或 C++,如果您需要)的更简单的解决方案开始,但不使用 Boost 库。只需使用普通的旧 select 系统调用即可。见manpagetutorial manpage

    只有在那之后,我才会切换到像 Boost 这样的花哨的东西。

    另请参阅this tutorial,了解 BSD 套接字编程。

    【讨论】:

    • 我没有任何使用 asio 的经验,所以我不会认为这是一个官方的答案,但我认为 Victor 可能在类似 select 的功能上走在正确的轨道上。这里有一些看起来相关的东西:stackoverflow.com/questions/910064/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多