Linux下常用的C C 開源Socket庫

2021-09-30 17:09:36 字數 2511 閱讀 9172

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!

1.linux socket programming in c++:

2.ace:

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

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

3.c++ sockets library:

它是乙個跨平台的sockets庫,實現包括tcp、udp、icmp、sctp協議。已實現的應用協議包括有smtp、http(s)、ajp。具有socks客戶端實現以及匿名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的客戶/伺服器程式更加容易。

8.******-socket:

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

9.poco:

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

10.libcurl:

libcurl是免費的輕量級的客戶端網路庫,支援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, 使用者名稱與密碼認證。

如果你開發的是客戶端,libcurl是乙個不錯的選擇。

11.libiop:

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

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

給我老師的人工智慧教程打call!

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萬行左右,過於巨集大,一堆的設計模式,架構了一層又一層。它龐大 複雜。適合大型專案。開源 免費。不依賴第三方庫。使用的...