我有一个守护进程(必须用C编写),它应该有像普通媒体播放器远程执行:用于基于C的远程控制/守护程序(IPC/RPC)的优雅API?
mediaplayer-rc --enqueue /path/to/song.mp3
如果mediaplayer-daemon
没有运行,它是通过遥控器启动。遥控器将传递消息。
我把那似乎是最直观的,以我的方式:)
- 客户端应用程序试图连接(如果它不能
- 客户端使用
argp
解析PARAMS启动守护程序成一个结构 - 客户端通过
- 服务器接收结构和其解释
我有simple demo implementation using libev and unix sockets on github。
我的推理是,用C编写客户端似乎更容易,我可以从其他语言调用它们的版本system()
,而不是尝试正确地获取另一种语言到pack
结构,或者让C库解析一些其他格式。
但我不认为这是一个特别优雅的解决方案。
另一种可能性,将是使用JSON。令人沮丧的是,在香草C中使用JSON解析器可能比参数解析器更复杂。结果是JSON(或YAML)在几乎所有其他语言的标准库中。
有什么建议吗?任何人都知道鸣鸟,gimp,itunes和其他带有遥控器的应用程序如何处理这个问题?
这是一个很好的资源。我想看看其他一些实现,但我认为字符串是最可靠的方法。 – CoolAJ86 2010-11-05 05:11:08