我想知道哪个库可以简化跨平台服务/守护进程的开发? (C / C ++)
我的目标是:Windows,Linux和OS X. 要求:网络操作和串口通信。
还有一个基本的样本服务应用程序会很好。
答案 0 :(得分:6)
Linux中的守护进程实际上只是一个与终端断开连接的进程。在Windows中,服务是可以使用服务管理API控制的东西,但再次基本上只是一个断开连接的过程。除了断开连接,守护进程和服务器没有太多共同点,从任务到任务。例如,没有要求它们是多线程的,异步的或执行网络I / O.鉴于此,很难看出跨平台库会做什么。
答案 1 :(得分:6)
说到Qt,你可以试试qt-service。
答案 2 :(得分:5)
答案 3 :(得分:3)
Boost可能包含threading和networking I / O所需的大部分内容。
您可能还会发现Qt是一个不错的选择。它还具有线程和网络库,并且更易于使用和使用。使用运行循环理解事件驱动的编程模型。 Qt的信号/插槽系统非常易于使用,是网络守护进程/服务的理想选择(Boost还包括一个signal/slot系统,但它更难使用而且不包含事件循环;你必须自己使用一些事件库)。作为一个跨平台的库,Qt可以处理许多关于桥接Unix(OS X和Linux)与Windows心理模型的过程,文件系统等问题。
对于单元测试,我对Google的C ++单元测试库googletest非常满意(尽管Boost和Qt都有内置的单元测试系统)。它在您指定的所有平台上运行。我已经在googletest上完成了很多关于跨平台Qt项目的工作,并且发现它非常令人满意。
答案 4 :(得分:0)
我在ASIO的非升级版本中找到了一个大型库。您不需要所有的boost库,只需要这个只有少量标题的文档库http://think-async.com/
作为示例,日常服务器 - 客户端系统仅在极少数代码行中实现。 看看吧。
(记得看看非增强型版本)