gpt4 book ai didi

C 使用 fork() 共享内存

转载 作者:太空宇宙 更新时间:2023-11-04 02:14:04 24 4
gpt4 key购买 nike

所以情况是这样的,我必须在 unix 中使用 c 开发一个多人游戏。现在我创建了套接字,服务器和客户端通信正常。现在这个游戏包括一个棋盘,所以每个客户端都有自己的 100x40 二维数组,并且他们使用读/写(也可以正常工作)将 x 和 y 位置发送到服务器。

现在,在服务器中,我正在使用 fork() 以便新客户可以加入游戏。在 child 的部分,我收到了 x 和 y 的位置。现在我的问题是,如何将 x 和 y 位置存储到服务器中找到的“全局”board[100][40](这样我就可以检查碰撞等)。我发现的困难是每个 child 都有自己的板版本,因为我使用的是 fork(),而且我只更新那个特定 child 的板。我希望每次客户端发送 x 和 y 位置时,我将它们放在服务器中的板上。

我读到过我需要使用某种 IPC,比如共享内存,但我想不通。如果有人可以提供帮助,将不胜感激,谢谢。

最佳答案

使用共享内存 API 调用:shmgetshmatshmdet、... Example code .

如果服务器很简单,你可以使用线程。使用线程,您可以简单地访问相同的全局变量。

关于C 使用 fork() 共享内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10154766/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com