Linux下經常使用的C C 開源Socket庫

2021-09-08 13:02:07 字數 2513 閱讀 3361

1.linux socket programming in c++:

2.ace:

ace採用ace_os適配層遮蔽各種不同的、複雜繁瑣的作業系統api。

ace是乙個大型的中介軟體產品,**20萬行左右,過於巨集大,一堆的設計模式,架構了一層又一層。它龐大、複雜。適合大型專案。開源、免費。不依賴第三方庫。使用的時候,要依據情況。看你從哪一層來進行使用。支援跨平台。

ace超重量級的網路通訊開發框架。ace自適配通訊環境(adaptivecommunication environment)是能夠自由使用、開放原始碼的物件導向框架。在當中實現了很多用於併發通訊軟體的核心模式。

3.c++ sockets library:

它是乙個跨平台的sockets庫,實現包含tcp、udp、icmp、sctp協議。已實現的應用協議包含有smtp、http(s)、ajp。具有socksclient實現以及匿名dns。支援http的get/post/put以及webserver的框架。

它封裝了sockets c api的c++類庫。支援ssl, ipv6, tcp和udp sockets, sctp sockets, http協議, 高度可定製的錯誤處理。

4.asio c++ library:

它是乙個基於boost開發的非同步io庫,封裝了對socket的經常使用操作。簡化了基於socket程式的開發。它開源、免費、支援跨平台。

5.libevent:

它是乙個c語言寫的網路庫,主要支援的是類linux 作業系統,最新的版本號加入了對windows的iocp的支援。因為iocp是非同步io。與linux下的poll模型。epoll模型,還有freebsd的kqueue等這些同步模型在用法上全然不一致。所以用法也不一樣,就好比ace中的reactor和proactor模式一樣。使用起來須要轉變思路。

假設對效能沒有特別的要求。那麼使用libevent中的select模型來實現跨平台的操作,select模型能夠橫跨windows,linux,unix。solaris等系統。

libevent是乙個輕量級的開源高效能網路庫,它的機制是採用事件觸發,封裝了以下三種事件的響應:io事件,定時器事件,訊號事件。

select模型來實現跨平台的操作,windows環境下支援iocp。google的開源web瀏覽器chromium在mac和linux版本號中。也使用了libevent。足見該庫的質量。

6.libev:

它是乙個c語言寫的。僅僅支援linux系統的庫,曾經的時候僅僅封裝了epoll模型.用法相似libevent,可是非常簡潔,**量是最少的乙個庫。也就幾千行**。顯然這種**跨平台肯定是無法支援的了,假設你僅僅須要在linux以下執行。那用這個庫也是能夠的。

libev和libevent非常像,依照作者的介紹,能夠作為libevent的替代者。能夠提供更高的效能。

libev是乙個高效能事件迴圈,所實現的功能就是乙個強大的reactor。

7.******socket:

這個類庫讓編寫基於socket的客戶/server程式更加容易。

8.******-socket:

an easy to use c++ socket andnetwork library, mainly for unix systems.

9.poco:

poco c++ libraries提供一套c++的類庫用以開發基於網路的可移植的應用程式,功能涉及執行緒、執行緒同步、檔案系統訪問、流操作、共享庫和類載入、套接字以及網路協議包含:http、ftp、smtp等;其本身還包含乙個httpserver。提供xml的解析和sql資料庫的訪問介面。poco庫的模組化、高效的設計及實現使得poco特別適合嵌入式開發。在嵌入式開發領域,因為c++既適合底層(裝置i/o、中斷處理等)和高層物件導向開發,越來越流行。

10.libcurl:

libcurl是免費的輕量級的client網路庫。支援dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, ldaps,pop3, pop3s, rtmp, rtsp, scp, sftp, smtp, smtps, telnet, tftp.支援ssl, httppost,httpput, ftp上傳, http form上傳,**,cookies, username與password認證。

假設你開發的是client。libcurl是乙個不錯的選擇。

11.libiop:

乙個c語言開發的跨平台網路io庫。

功能特性:c/c++api, 底層支援epoll, select,poll等io模型。非同步事件模型;任務池模型,跨平台執行緒介面。跨平台(linux/windows)。日誌服務。穩定。支援7*24小時無間斷執行。自己主動處理異常狀態;高併發與高速響應;api簡潔,學習成本底。

Linux下常用的C C 開源Socket庫

1.linux socket programming in c 2.ace ace採用ace os適配層遮蔽各種不同的 複雜繁瑣的作業系統api。ace是乙個大型的中介軟體產品,20萬行左右,過於巨集大,一堆的設計模式,架構了一層又一層。它龐大 複雜,適合大型專案。開源 免費,不依賴第三方庫。使用的...

Linux下常用的C C 開源Socket庫

1.linux socket programming in c 2.ace ace採用ace os適配層遮蔽各種不同的 複雜繁瑣的作業系統api。ace是乙個大型的中介軟體產品,20萬行左右,過於巨集大,一堆的設計模式,架構了一層又一層。它龐大 複雜,適合大型專案。開源 免費,不依賴第三方庫。使用的...

Linux下常用的C C 開源Socket庫

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!1.linux socket programming in c 2.ace ace採用ace os適配層遮蔽各種不同的 複雜繁瑣的作業系統api。ace是乙個大型的中介軟體產品,20萬行左右,過於巨集大,一堆的設計模式,架構了一層又一層。它龐大 複...