代码之家  ›  专栏  ›  技术社区  ›  coolaj86

基于C的远程控制/守护进程(ipc/rpc)的优雅API?

  •  1
  • coolaj86  · 技术社区  · 14 年前

    我有一个守护进程(必须用C语言编写),它应该像普通媒体播放器那样具有远程功能:

    mediaplayer-rc --enqueue /path/to/song.mp3
    

    如果 mediaplayer-daemon 没有运行,它是由远程控制器启动的。遥控器将传递消息。

    我采用了对我来说最直观的方法:

    • 客户端应用程序尝试连接(),如果无法连接,则启动守护进程。
    • 客户端使用 argp 将参数解析为结构
    • 客户端通过套接字发送结构
    • 服务器接收结构并解释它

    我有一个 simple demo implementation using libev and unix sockets on github .

    我的理由是,用C语言编写客户机似乎更容易,我可以用其他语言的版本调用它。 system() 比试着用另一种语言 pack

    1 回复  |  直到 14 年前
        1
  •  1
  •   x-x    14 年前

    我不能推荐一个现成的图书馆-相反,我建议你看看 Music Player Daemon . 它使用非常简单的文本协议远程控制整个应用程序。有几个 clients (用代码)你也可以看看。