相关疑难解决方法(0)

在C/C++中实现跨平台,多线程服务器的最佳方法是什么?

我与之合作的开发团队的一部分面临着编写服务器以与我们的产品集成的挑战.我们有一些提供C SDK的低级传感器设备,我们希望通过网络共享它们以供收集数据的人使用.听起来很简单吧?有人会将传感器设备连接到建筑物的一部分中的机器并运行我们的服务器,从而与网络的其余部分共享设备.然后,客户端将通过我们的应用程序连接到该服务器,并从设备收集传感器读数.

我创建了一个简单的,与语言无关的网络协议,以及Java中的参考实现.问题是创建一个实现,它将与我们的设备一起使用,这些设备仅提供用C编写的SDK.我们正在考虑执行以下操作:

  1. 创建轮询线程,收集并存储每个连接设备的最新读数.
  2. 使用多线程服务器将每个传入连接分离到工作线程.
  3. 当工作线程收到传感器读取请求时,轮询线程收集的最新值将被发送回客户端.

这是很多线程,特别是在C中.因此,要审查,一般要求是:

  • 在Windows XP/Vista,Linux和OS X计算机上运行
  • 用C或C++编写,与我们拥有的C SDK进行交互
  • 接受可变数量的同时连接(工作线程)
  • 必须使用线程,而不是分叉(不想处理另一层IPC)

谁能建议一个库,最好是一些示例代码才能开始使用?

c c++ multithreading network-programming client-server

10
推荐指数
3
解决办法
4550
查看次数