跳轉至內容

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 ();
華夏公益教科書