使用C++和Boost::Asio的N方客户端到客户端通信

N-party client-to-client communication using C++ and Boost::Asio

本文关键字:客户端 通信 Asio C++ Boost 使用      更新时间:2023-10-16

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

在某一点上,我需要让每个用户向所有其他用户发送(或从中接收)一些数据。

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

我有一个工作代码,允许用户将数据发送给另一个用户。我很难理解如何让所有用户同时相互发送和接收。我似乎也不能同时概括多个async_connects

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

如果您在基于Unix的操作系统(如Linux)上,我会从使用C编程语言(如果需要,可以使用C++)但不使用Boost库的不那么复杂的解决方案开始。只需使用普通的旧select系统调用即可。请参阅手册页和教程手册页。

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

另请参阅本教程中有关BSD套接字编程的内容。