仅当新消息到达套接字时,才可以调用OCProcess吗?

时间:2019-01-30 13:54:24

标签: iotivity

IoTivity Wiki指南指出,OCProcess必须循环执行才能获取新消息:

Once initialized you need to create a loop that calls OCProcess until stopped.

  while (!gQuitFlag)
  {
      if (OCProcess() != OC_STACK_OK)
      {
      ...
      }
   }

这似乎效率极低。不管数据是否到达,都会调用OCProcess。它还需要线程化,这会增加CPU使用率,并且由于循环必须休眠一段时间,因此当实际数据到达时OCProcess可能处于非活动状态。

我宁愿直接观察套接字的文件描述符(例如linux select),并且仅在有数据时才调用OCProcess。 IoTivity C API不具有getSocketFD函数。

有人可以对此问题提供建议吗?谢谢

0 个答案:

没有答案