我想知道哪个库可以简化跨平台服务/守护程序的开发?(C/C++)
我的目标是:Windows、Linux 和 OS X。要求:网络操作和串口通信。
拥有一个基本的示例服务应用程序也很好。
我想知道哪个库可以简化跨平台服务/守护程序的开发?(C/C++)
我的目标是:Windows、Linux 和 OS X。要求:网络操作和串口通信。
拥有一个基本的示例服务应用程序也很好。
对于 Qt,您可以尝试qt-service。
Linux 中的守护进程实际上只是一个与终端断开连接的进程。在 Windows 中,服务是可以使用服务管理 API 进行控制的东西,但基本上还是一个断开连接的进程。除了断开连接之外,守护进程和服务器在任务之间没有太多共同点。没有要求,例如,它们是多线程的、异步的或执行网络 I/O。鉴于此,很难看出跨平台库会做什么。
在线程和网络I/O方面, Boost可能拥有您所需要的大部分功能。
您可能还会发现Qt是一个不错的选择。它还具有线程和网络库,并且使用运行循环更易于使用和理解事件驱动的编程模型。Qt 的信号/槽系统非常易于使用,是网络守护程序/服务的理想选择(Boost 还包括一个信号/槽系统,但它更难使用并且不包括事件循环;您必须使用一些事件来滚动自己图书馆)。作为一个跨平台库,Qt 可以处理桥接 Unix(OS X 和 Linux)与 Windows 心智模型的进程、文件系统等的许多问题。
对于单元测试,我对 Google 的 C++ 单元测试库googletest非常满意(尽管 Boost 和 Qt 也有内置的单元测试系统)。它在您指定的所有平台上运行。我在跨平台 Qt 项目上使用 googletest 做了很多工作,发现它非常令人满意。
我在 ASIO 的非增强版本中找到了一个大库。你不需要所有的 boost 库,只需要这个小标题和非常好的文档库http://think-async.com/
例如,一个白天的服务器-客户端系统是用很少的代码行来实现的。看看它。
(记得看非增强版)