2010-12-17 96 views
1

我正在尋找一個庫/框架/ codesnippet,它可以幫助我構建一個非常簡單的服務器/客戶端。兩者都應該是可移植的(linux/win/mac)。在C++中實現一個簡單的服務器/客戶端概念

一張圖片表示,更多的則千言萬語這樣: alt text

服務器應該能夠單獨指出錯誤的客戶。 我在找什麼只是如何做轉讓的提示。我對C++以外的語言有一點經驗,創建一個服務器可以存儲連接到數組中的所有客戶端,並且一旦你指向正確的方向就與它們中的每一個進行交互。

我對C++的看法是RakNet和Boost.Asio。 我不想使用RakNet,因爲我可能會在某個時候出售應用程序(你永遠不知道),而Boost.Asio似乎很難讓我理解並向低級別方向發展。我真正需要的只是一個簡單的發送/接收功能。 json將由我處理(我已經看過jsoncpp)。一條消息的最大長度爲2048字節。

任何建議/提示/幫助看什麼/使用什麼? 我真的很想找一些簡單的東西,而不是那麼低層次的使用,因爲我不需要低級別的功能。

在此先感謝,
羅賓。

+0

雖然帶有文字的圖片沒有多說這些單詞。 – Default 2010-12-17 17:28:40

+0

這是功課嗎? – 2010-12-17 18:33:08

+0

不,它不是。我想和我的一個朋友一起開發一個小型遊戲(只是爲了學習關於opengl的東西),如果我們能夠添加網絡支持,我們會覺得很酷。 – Robin 2010-12-17 18:36:45

回答

3

你以前做過網絡編程嗎?它在C中非常簡單,而且你想要的東西可以在幾個小時內實現。當我還是學生的時候,我使用下面的這個手冊來完成我的作業。

http://shoe.bocks.com/net/

剛纔看了這個,你是好去。它真的不是很難。

祝你好運!

+0

我正在尋找跨平臺解決方案。 – Robin 2010-12-17 16:52:14

+0

@Robin:我仍然建議你閱讀一篇精心編寫的非便攜式解決方案,以熟悉網絡編程。網絡套接字在不同平臺上具有幾乎相同的接口,使您可以輕鬆地連接**客戶端。然而,可擴展的網絡服務器體系結構從一個平臺到另一個平臺有很多**。 – 2010-12-17 17:37:13

+0

安德烈說,他們幾乎是一樣的。將它移植到各種平臺上,它在這個級別上是免費的。我不知道你想要開發什麼,但如果你不介意研究java,那麼它更容易和它的平臺無關。 – zhengtonic 2010-12-17 18:08:26

1

由於跨平臺和易於使用都是要求,我會推薦Qt。它非常簡單,可靠並且跨平臺。

http://qt.nokia.com/products/developer-tools/

它配備了大量的樣本,包括13個網絡樣本(看看螺紋服務器的教程,我相信這只是你以後)的。

+0

是的,但是在這種情況下使用QT有點誇張,如果你打算在商業上使用它,許可將是一個問題。 LGPL比人們想象的要棘手。 – zhengtonic 2010-12-17 18:11:01

+0

@ zhengtonic - 你可以堅持LGPL。只有在您打算修改Qt源代碼並保持更改關閉源時,才需要商業許可證,否則您可以使用Qt的LGPL許可證創建自己的商業封閉源代碼應用程序。就膨脹起來,我非常不同意,Qt是模塊化的,所以你應該只需要libqtcore和libqtnetwork。這對於跨平臺來說確實是一個很小的代價。這不像你會添加虛擬機或類似的東西,它仍然是一個本地應用程序 – Raphael 2010-12-17 18:48:40