2012-12-26 28 views
0

我正在使用客戶端 - 服務器實現的Qt fortune服務器示例。在這個例子中,服務器在有新連接時發送一個隨機命令,然後關閉連接。但是對於我的程序,我希望服務器在客戶端連接後不斷與客戶端通信。我怎樣才能做到這一點?如何使用Qt連續發送服務器到客戶端的數據?

回答

0

根本就不斷開通過QTcpServer::nextPendingConnection()返回後使用它們的客戶和商店客戶端的插座。

0

好了,這裏有兩種方法:

  1. 你不關閉連接。當客戶端連接到服務器時,將保持連接,直到客戶端或服務器關閉。這樣,客戶端和服務器都可以隨時發起請求。您需要實施一些Ping機制,客戶端和服務器會定期發送小請求,以便通知對方他們仍然「活着」。當這些停止傳入時,連接關閉。客戶端必須隨時準備好,並在關機意外時重新建立連接。
  2. 實現此使用REST架構:http://en.wikipedia.org/wiki/Restful。這與瀏覽器用來獲取WWW網站的模型相同。每當客戶端想要從服務器獲得一些東西時,它就實例化一個新的連接,發送請求,接收響應並關閉連接。當然,如果連接需要一直重新建立,它可能會影響性能,因此客戶端應該保持連接處於活動狀態,直到他們認爲連接不再需要或連接存活時間到期。這實際上是在互聯網瀏覽器中實現的。請記住,這種架構可以防止您直接從服務器向客戶端發送請求。如果客戶需要實時更新信息,則需要在短時間內不斷向服務器詢問。
+0

謝謝ZalewaPL,但我想實現它Qt中。 – Amar

0

有在GitoriousGithub(和許多其他網站)許多項目,它可以爲您服務的例子,但你正在尋找不正是對,一點點研究並記錄這些項目,你可以看到其他開發人員可以讓自己的學習成爲他們的職業。

我真的想到,在全他們的想法QtWebsocket遇到一個有趣的項目,但當然必須考慮如何應用,滿足您的需求。

相關問題