2012-06-11 32 views
36

是否有任何用於P2P網絡的良好跨平臺C++庫(最好是UDP,但TCP也可以)。最初我打算使用libjingle,但由於他們沒有提供任何預編譯的庫和體育相當凌亂的構建系統,我目前把它放在一邊太複雜。用於C++的P2P庫

+4

P2P網絡是什麼意思?你想實現什麼樣的溝通?這是文件傳輸,聊天,語音,視頻嗎?這是指向還是指向多點溝通? – Zuljin

+0

從我的經驗來看,我至少可以告訴大家遠離_enet_,因爲它很麻煩。 – abergmeier

+1

ProudNet還提供包括打孔和中繼在內的P2P網絡。功能包括遠程過程調用,類似於UDP的和類似TCP的消息傳遞,加密,壓縮等。 –

回答

25

libtorrent.org建立在boost之上,boost-asio是一個P2P工作對我很好的庫。它實現了BitTorrent協議,使用TCP作爲傳輸數據,TCP/UDP作爲對等交換。

+0

@LCID火:將此標記爲正確答案? – favadi

+1

可以使用libtorrent/BitTorrent作爲通用的P2P網絡庫/協議嗎? –

+0

@ErikAllik libtorrent不是一個普通的P2P網絡庫,但你可以學習它。 – secmask

4

一種可能的選擇是我們的MsgConnect產品。開源許可證可用。

+0

沒有開放源碼的軟件GitHub回購時下現在開始感覺有點像軟件一點,在某種程度上:) –

2

libjingle可能是一個痛苦的編譯,但它非常強大,而且API非常簡單,示例應用程序可以幫助您更好地學習和理解它。

+1

坡道似乎不必要的高。 – abergmeier

0

Tribler.org

成爲一個跨平臺的P2P客戶端,但它提供其開源API爲好。 它實現了許多非標準的功能,如P2P視頻流, DHT,梅克爾哈希,repex,NAT和防火牆穿刺,...

它的發動機是歐洲創立了視頻流項目的一部分:p2p-next

不幸的是它是用python寫的,但是你可以用C++ 來包裝它,或者甚至用python生成C++庫。

或者:libswift

-3

我喜歡SDL_net。它管理UDP和TCP通信協議。 它可用於MAC,WINDOW & LINUX發行版,輕量級且相當容易實現。

其網站不是最好看,但有很好的文檔與演示,你可以從中獲得啓發。

+0

這不是一個P2P庫,而是一個普通的TCP/UDP網絡庫。 –