日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Linux下常用的C/C++开源Socket库

發布時間:2023/11/27 生活经验 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux下常用的C/C++开源Socket库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.??????Linux Socket Programming In C++ : http://tldp.org/LDP/LG/issue74/tougher.html

2.??????ACE: http://www.cs.wustl.edu/~schmidt/ACE.html

ACE采用ACE_OS適配層屏蔽各種不同的、復雜繁瑣的操作系統API。

ACE是一個大型的中間件產品,代碼20萬行左右,過于宏大,一堆的設計模式,架構了一層又一層。它龐大、復雜,適合大型項目。開源、免費,不依賴第三方庫。使用的時候,要根據情況,看你從哪一層來進行使用。支持跨平臺。

ACE超重量級的網絡通信開發框架。ACE自適配通信環境(AdaptiveCommunication Environment)是可以自由使用、開放源代碼的面向對象框架,在其中實現了許多用于并發通信軟件的核心模式。ACE提供了一組豐富的可復用C++包裝外觀(Wrapper Facade)和框架組件,可跨越多種平臺完成通用的通信軟件任務,其中包括:事件多路分離和事件處理器分派、信號處理、服務初始化、進程間通信、共享內存管理、消息路由、分布式服務動態(重)配置、并發執行和同步,等等

3.??????C++ Sockets Library: http://www.alhem.net/Sockets/index.html

它是一個跨平臺的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: http://think-async.com/

它是一個基于Boost開發的異步IO庫,封裝了對Socket的常用操作,簡化了基于Socket程序的開發。它開源、免費、支持跨平臺。

5.??????libevent: http://libevent.org/

它是一個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: http://software.schmorp.de/pkg/libev.html

它是一個C語言寫的,只支持Linux系統的庫,以前的時候只封裝了EPOLL模型.使用方法類似libevent,但是非常簡潔,代碼量是最少的一個庫,也就幾千行代碼。顯然這樣的代碼跨平臺肯定是無法支持的了,如果你只需要在Linux下面運行,那用這個庫也是可以的。

libev和libevent很像,按照作者的介紹,可以作為libevent的替代者,能夠提供更高的性能。libev是一個高性能事件循環,所實現的功能就是一個強大的reactor。

7.??????SimpleSocket: http://home.kpn.nl/lcbokkers/simsock.htm

這個類庫讓編寫基于Socket的客戶/服務器程序更加容易。

8.??????simple-socket: http://sourceforge.net/projects/simple-socket/

An easy to use C++ socket andnetwork library, mainly for UNIX systems.

9.??????POCO: http://pocoproject.org/

POCO C++ Libraries提供一套C++的類庫用以開發基于網絡的可移植的應用程序,功能涉及線程、線程同步、文件系統訪問、流操作、共享庫和類加載、套接字以及網絡協議包括:HTTP、FTP、SMTP等;其本身還包含一個HTTP服務器,提供XML的解析和SQL數據庫的訪問接口。POCO庫的模塊化、高效的設計及實現使得POCO特別適合嵌入式開發。在嵌入式開發領域,由于C++既適合底層(設備I/O、中斷處理等)和高層面向對象開發,越來越流行。

10.??libcurl: http://curl.haxx.se/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: http://sourceforge.net/projects/libiop/

一個c語言開發的跨平臺網絡IO庫。

功能特性:c/c++api, 底層支持epoll, select,poll等io模型;異步事件模型;任務池模型,跨平臺線程接口;跨平臺(Linux/windows);日志服務;穩定,支持7*24小時無間斷運行,自動處理異常狀態;高并發與快速響應;API簡潔,學習成本底。

注:以上內容整理自網絡!

?

?

總結

以上是生活随笔為你收集整理的Linux下常用的C/C++开源Socket库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

歡迎分享!

轉載請說明來源于"生活随笔",并保留原作者的名字。

本文地址:Linux下常用的C/C++开源Socket库