2010-03-09 81 views

回答

0

您可以使用或查看開源網絡庫,如ACE。那裏有很多好東西。

0

您可以使用處理即時消息協議的現有庫,如libpurple

7

UDP協議並不是Internet聊天程序的最佳選擇。 UDP數據包將被代理攔截。而UDP不保證數據包的傳送。所以可能的TCP協議將是一個更好的選擇。

看看Boost.Asio圖書館。它已經包含chat program的原始實現。

+0

+1對於TCP,我會爲Boost.Asio(特別是它的tcpstreams)提供另一個+1。 – Tronic 2010-03-09 19:25:46

+0

我發現asio缺乏文檔記錄,沒有得到很好的支持,甚至對於一個有經驗的程序員也很難理解。我不會推薦它。 – Jay 2010-03-09 20:17:55

3

你不會在這裏給我們很多細節!

如果您的目的是真正做到完全工作並且具有完整的聊天應用功能,我建議您看看XMPP這是一個開放的即時通訊協議。 Here是實施它的一些庫的列表。

如果您的目的是學習網絡編程,並且您對UDP與TCP更感興趣,那麼對於聊天應用程序而言,UDP是不好的選擇,因爲它不能保證數據完整性或排序。您的郵件可能(並且將會!)以錯誤的順序收到,有些甚至可能會丟失。 TCP會爲你做檢查。

在之間(一個很簡單的聊天應用程序),你可以實現你自己的協議,並利用圖書館人在這裏建議像Boost.asioACEPOCO,甚至wxWidgetsQt,這將緩解插座處理並提供你需要構建最後2個桌面應用程序。

0

UDP就像是一種「拍攝而忘記」的協議。它速度很快,但如果您使用它來通過互聯網進行通信,則不能保證您的信息將被收到。即使是局域網,你的數據包仍然可能會丟失。使用TCP會更方便,它可以確保您的數據包沒有錯誤地按照您發送的順序到達。