1

我已经阅读了几个小时的 boost asio 文档,虽然我认为文档真的很棒,但我仍然对如何实现我需要的系统感到有些困惑。

我必须通过 tcp 将信息从游戏引擎传输到计算机列表。一个障碍是,与传统的 pub/sub 不同,分发信息的计算机实际上也是必须连接到订阅者的计算机(而不是订阅者向发布者注册)。这是通过一个配置文件完成的——一个ip/端口列表以及它们每个需要的数据。订阅者收听,但不知道发布者的 ip。(作为旁注,我对网络编程很陌生,所以也许我遗漏了一些东西......但奇怪的是我没有找到关于这种“倒置”客户端 - 服务器模型风格的太多信息......)

我正在寻找使用 boost asio 来实现这样一个系统的建议。当然,我必须将网络集成到已经存在的引擎中,所以关于这一点:处理每帧发送到多台计算机的消息的好方法是什么?使用 async_write,调用 io_service.run 然后重置每一帧?让 io_service.run 有自己的线程会更好吗?还是我应该只使用线程并使用阻塞写入?


我找到了一个处理我的部分问题的线程:在游戏循环中使用 io_service - Boost::Asio : io_service.run() vs poll() 或者我如何在 mainloop 中集成 boost::asio。如果我确实找到了一个好的解决方案,我会尝试一些事情并发布更明确的答案。

4

0 回答 0