天天看點

開源免費的C/C++網絡庫(c/c++ sockets library) 七劍下天山

(1)ACE

龐大、複雜,适合大型項目。開源、免費,不依賴第三方庫,支援跨平台。

<a href="http://www.cs.wustl.edu/~schmidt/ACE.html" target="_blank">http://www.cs.wustl.edu/~schmidt/ACE.html</a>

(2)Asio

Asio基于Boost開發的異步IO庫,封裝了Socket,簡化基于socket程式的開發。

開源、免費,支援跨平台。

<a href="http://think-async.com/" target="_blank">http://think-async.com/</a>

(3)POCO

POCO C++ Libraries 提供一套 C++ 的類庫用以開發基于網絡的可移植的應用程式,功能涉及線程、線程同步、檔案系統通路、流操作、共享庫和類加載、套接字以及網絡協定包括:HTTP、 FTP、SMTP 等;其本身還包含一個 HTTP 伺服器,提供 XML 的解析和 SQL 資料庫的通路接口。POCO庫的子產品化、高效的設計及實作使得POCO特别适合嵌入式開發。在嵌入式開發領域,由于C++既适合底層(裝置I/O、中斷處理等)和高層面向對象開發,越來越流行。

<a href="http://pocoproject.org/" target="_blank">http://pocoproject.org/</a>

(4)libevent

Libevent是一個輕量級的開源高性能網絡庫,從它的官網标題:libevent-an event notification library就能知道它的機制是采用事件觸發,封裝了以下三種事件的響應:IO事件,定時器事件,信号事件。select模型來實作跨平台的操作,Windows環境下支援IOCP。

<a href="http://libevent.org/" target="_blank">http://libevent.org/</a>

(5)libev

libev和libevent很像,按照作者的介紹,可以作為libevent的替代者,能夠提供更高的性能。

libev是一個高性能事件循環,所實作的功能就是一個強大的reactor。

<a href="http://software.schmorp.de/pkg/libev.html" target="_blank">http://software.schmorp.de/pkg/libev.html</a>

(6)c++ sockets library

封裝了sockets C API的C++類庫。

支援SSL, IPv6, tcp 和 udp sockets, sctp sockets, http協定, 高度可定制的錯誤處理。

<a href="http://www.alhem.net/Sockets/" target="_blank">http://www.alhem.net/Sockets/</a>

(7)libcurl

libcurl是免費的輕量級的用戶端網絡庫,支援DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet, TFTP. 支援SSL, HTTP POST, HTTP PUT, FTP上傳, HTTP form上傳,代理,cookies, 使用者名與密碼認證。

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

<a href="http://curl.haxx.se/libcurl/" target="_blank">http://curl.haxx.se/libcurl/</a>