【发布时间】:2023-03-03 11:27:01
【问题描述】:
我在 Linux 上使用 C。我需要构建两个使用共享内存和信号量进行通信的程序。
其中一个程序必须用作服务器(一次只能一个),另一个程序必须用作客户端(一次任意数量)。通信应遵循以下模式:
Client1 -> Server (Client1 writes to ShM, Server reads it)
Client1 <- Server
Client2 -> Server
Client2 <- Server
我知道如何在两个进程之间使用共享内存和信号量,但如果有未定义数量的进程想要通信,我不知道如何使用它们。 我曾考虑为每个客户端使用共享内存块,但我必须交换密钥并通知服务器有新客户端。所以这并不能解决问题。
【问题讨论】:
标签: c client-server semaphore shared-memory