跳转至内容

ACE+TAO 开源编程笔记/创建同时具有客户端和服务器的进程

来自 Wikibooks,面向开放世界的开放书籍

此模型用于设置类似客户端的应用,并且定期(不循环)调用服务器代码的处理程序。注意这样进行编写比较奇怪,以便轮询函数在 ORB 的处理循环超时之后才会被调用。因此,这里可能发生的情况是,处理程序可以向其它 ORB 发出调用,并且本地 ORB 的 run() 成员可以作为兼职服务器。根据 TAO 开发人员手册,当轮询功能执行其操作时,TCP 堆栈将作为缓存,因此不要在轮询函数中花费太多时间。

  MyHandler ph;

  //Set up a delay value of 6 s
  ACE_Time_Value interval (6, 0);
  //Run the ORB's event loop and poll the bill acceptor
  while(1){
    orb->run(interval);
    ph.poll();
  }
  orb->destroy ();
华夏公益教科书