浪子終回頭 2023-09-23 13:45 采纳率: 75%
浏览 6
已结题

c++ 寻路端 与 游戏端 如何通信

请大家看看

1 寻路端 需要加载大量地图数据,几个G,并提供寻路函数

2 游戏端 需要从寻路端获取寻路结果

寻路端我只想加载一次,很占用内存,游戏端需要多开启几个,我在游戏端调用寻路端的函数,需要什么方法

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-09-23 16:24
    关注

    【以下回答由 GPT 生成】

    为了让C++寻路端与游戏端进行通信,你可以使用进程间通信(IPC)的机制。在这种情况下,你可以使用命名管道(Named Pipes)来实现通信。

    下面是一种可能的解决方案:

    1. 设计好寻路端的API,包括加载地图数据和寻路函数。确保该API可以被外部调用。

    2. 在寻路端中创建一个命名管道,在其中等待游戏端的连接。你可以使用Windows API中的CreateNamedPipe函数来创建命名管道,并在其中使用ConnectNamedPipe函数来等待连接。

    3. 当游戏端启动时,它可以打开寻路端的命名管道,并与之建立连接。你可以使用Windows API中的CreateFile函数来打开命名管道。

    4. 游戏端可以通过命名管道将寻路请求发送给寻路端。可以使用WriteFile函数将请求数据写入到命名管道中。

    5. 寻路端读取命名管道中的请求数据,并进行相应的处理。可以使用ReadFile函数来读取命名管道中的数据。

    6. 寻路端执行寻路算法并生成寻路结果。

    7. 寻路端将寻路结果写入到命名管道中,让游戏端读取。可以使用WriteFile函数将结果写入到命名管道中。

    8. 游戏端从命名管道中读取寻路结果。可以使用ReadFile函数来读取命名管道中的数据。

    请注意,以上步骤仅涵盖了通信过程的大致流程,并没有提供具体的代码实现。具体的实现细节可能会因操作系统和编程语言的不同而有所差异。

    另外,如果你希望寻路端只加载一次数据以节省内存,并且游戏端能够同时开启多个实例,你可以考虑将寻路端设计为一个独立的服务,并使用网络通信(例如使用Socket)来实现与游戏端的通信。这样,游戏端就可以通过网络连接到寻路端,并发送寻路请求和接收结果。这种方式可以让寻路端独立于游戏端运行,并且可以支持多个游戏端实例同时连接。不过,相比命名管道,网络通信的实现会更加复杂一些。

    希望以上解决方案能对你有帮助。如果有任何问题,请随时提问。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月9日
  • 已采纳回答 10月1日
  • 创建了问题 9月23日

悬赏问题

  • ¥15 mmocr的训练错误,结果全为0
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀