【发布时间】:2015-08-13 09:51:05
【问题描述】:
我有一个主程序 X,它正在从我的网络摄像头获取信息。
我想在执行时实时配置 X。
我知道这样做的一种常见方法是使用 IPC,如命名管道/Unix 套接字/Internet 套接字等。但我想避免每个调用者都必须单独打开一个套接字/命名管道,并且每次都进行通信.
简而言之,我想要一个名为 Y 的帮助程序,我可以通过以下方式使用它:
Y set-fps=15
Y show-frame=true
Y get-fps (should return 15)
我想在 /usr/bin/* 中播放这个帮助程序 Y(或者更确切地说,将它放在 $PATH 目录之一中),以便它可以从命令行执行。
我有哪些选择来获得此功能。我的限制如下:
(i) 程序 X 可以是 C++/Python。
(ii) 多个客户端可以同时调用 Y。
我猜这样的系统在 Linux 上很常见,你有像 nmcli 这样的程序与像 network-manager 这样的服务进行交互?
【问题讨论】:
-
程序 Y 和 X 之间仍然需要某种 IPC 通道。如果您担心多个外部系统或程序同时使用 Y,那么您可以使用某种信号量/互斥系统(大多数操作系统都有命名(系统范围的)信号量)。
-
这听起来很不愉快。我建议重新考虑设计。
-
我想要处理多个客户端,命名管道可能太多了(因为我需要为每个尝试连接的客户端提供一对)。我希望能够在有/没有阻塞的情况下同时处理多个客户端(取决于请求)。
-
@EOF:你能详细说明一下吗?这样的设计使任何客户都可以轻松轻松地进行交流。我怎么能做到这一点..
-
UNIX 套接字能否同时且独占地处理多个客户端?
标签: python c++ c sockets named-pipes