与我一起工作的开发团队的一部分人面临着编写服务器以与我们的产品集成的挑战。我们有一些提供 C SDK 的低级传感器设备,我们希望通过网络共享它们以供收集数据的人们使用。听起来很简单,对吧?有人会将传感器设备连接到建筑物一部分的机器并运行我们的服务器,从而与网络的其余部分共享设备。然后客户端将通过我们的应用程序连接到该服务器并从设备收集传感器读数。
我创建了一个简单的、与语言无关的网络协议和一个 Java 参考实现。问题在于创建一个可与仅提供用 C 编写的 SDK 的设备一起使用的实现。我们正在考虑执行以下操作:
- 创建轮询线程,收集和存储每个连接设备的最新读数。
- 使用多线程服务器将每个传入连接分离到工作线程。
- 当工作线程接收到传感器读取请求时,轮询线程收集的最新值将被发送回客户端。
这是很多线程,尤其是在 C 中。所以,回顾一下,一般要求是:
- 在 Windows XP/Vista、Linux 和 OS X 机器上运行
- 用 C 或 C++ 编写,与我们拥有的 C SDK 交互
- 接受可变数量的同时连接(工作线程)
- 必须使用线程,而不是分叉(不想处理另一层 IPC)
谁能建议一个库,最好是一些示例代码来开始使用?