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库相关推荐

  1. Linux下常用软件推荐列表

    Linux下常用软件推荐列表(欢迎补充...)   halazi100发布于 2010-12-10 | 17617次阅读  字号: 大 中 小  (网友评论 14 条) 我要评论 [i=s] 本帖最后 ...

  2. Linux下常用的系统监控软件

    转载:http://blog.chinaunix.net/uid-25266990-id-3380929.html Linux下常用的系统监控软件有Nagios.Cacti.Zabbix.Monit等 ...

  3. linux下常用命令wget进行整站下载

    一.Linux下的wget Linux系统中的wget是一个下载文件的工具,它用在命令行下.对于Linux用户是必不可少的工具,我们经常要下载一些软件或从远程服务器恢复备份到本地服务器.wget支持H ...

  4. 万得终端 linux安装,Linux下常用工具

    Linux下常用工具: yuv rgba playerubuntu 18.04 wps1 2sudo dpkg -i wps-office_10.1.0.5672~a21_amd64.deb sudo ...

  5. linux下常用关机命令

    linux下常用的关机命令有:shutdown.halt.poweroff.init:重启命令有:reboot.下面本文就主要介绍一些常用的关机命令以及各种关机命令之间的区别和具体用法. 首先来看一下 ...

  6. linux下常用软件下载

    linux下常用软件下载: wget http://admin.ooopic.com/soft/linux/APC-3.1.2.tgz wget http://admin.ooopic.com/sof ...

  7. Linux下常用日志分析工具

    Linux下常用日志分析工具 Logcheck简介 对于拥有大量账户.系统繁忙的Linux系统而言,其日志文件是极其庞大的,很多没有用的信息会将值得注意的信息淹没,给用户分析日志带来了很大的不便.现在 ...

  8. linux下常用的关机命令有:shutdown、halt、poweroff、init;重启命令有:reboot。下面本文就主要介绍一些常用的关机命令以及各种关机命令之间的区别和具体用法。

    linux下常用的关机命令有:shutdown.halt.poweroff.init:重启命令有:reboot.下面本文就主要介绍一些常用的关机命令以及各种关机命令之间的区别和具体用法. 原创未通过审 ...

  9. MongoDB在Linux下常用优化设置

    MongoDB在Linux下常用优化设置 以下是一些MongoDB推荐的常用优化设置.在生产环境下选取合适的参数值,例如预读值和默认文件描述符数目等,会对系统性能有很大的影响. 1.关闭数据库文件的 ...

最新文章

  1. 《移动应用开发》实验报告——轮播图
  2. 关于 ls 命令的一个小小的缺陷
  3. virtualbox虚拟机安装Ubuntu异常处理:FATAL: NO bootable medium found! System halted
  4. ImportError: libnvinfer.so.7: cannot open shared object file: No such file or directory
  5. NodeJS http 模块
  6. 2.WebDriver-元素定位 -(一)
  7. 解决ImmediateDeprecationError 用Python获取Yahoo数据
  8. 百度云盘--ABAQUS_Python后处理教程
  9. java speex转码_微信Speex转wav,Speex to wav
  10. 人物-物理学家:爱因斯坦
  11. 无法更新到Win8.1的原因与解决办法
  12. 3D全景+展馆,带来不一样的参观体验_华锐互动
  13. 如何快速入门成为一名数据分析师
  14. 解决git中upstream丢失问题Your branch is based on 'origin/xxxx', but the upstream is gone.
  15. Protect访问权限
  16. SqlServer邮件
  17. java计算机毕业设计旅游景点推荐系统源码+系统+mysql数据库+lw文档
  18. 使用极狐GitLab CI/CD部署应用到Kubernetes集群的方案
  19. 中国移动MM7 API用户手册(四)
  20. 将eclipse,虚拟机,mysql安装到移动硬盘上,亲测

热门文章

  1. Python搭建Keras CNN模型破解网站验证码
  2. POJ - 2337 Catenyms 欧拉回路
  3. 剑指offer:面试题12. 矩阵中的路径
  4. 在Mac上设置环境变量并永久生效的方法
  5. 在rMBP上利用Python的onetimepass库实现Google Authenticator Application的效果
  6. ncurse界面编程多线程示例
  7. C++的STL 堆 实现获取数组堆第K大的数
  8. 配置flutter For IOS
  9. OOP 面向对象 七大原则 (一)
  10. linux系统无法挂载U盘