C++-网络库:Poco概述【开源的C++类库的集合】【提供简单的、快速的网络和可移植应用程序的C++开发】【和C++标准库可以很好的集成并填补C++标准库的功能空缺】【适合嵌入式开发】

学习一个框架前,要先明白它的是什么,为什么,怎么用.下面这些文字,是从中文poco官网上转过来的,正如poco c++库的特点,非常清晰,代码风格更是一目了然:

poco开发库的特点,非常适合写后台处理程序,效率也是很高的.前台界面程序使用Qt框架库,非常好,两个库相辅相成,可解决项目上的大部分问题.

POCO C++是一个开源的C++类库的集合,它主要提供简单的、快速的网络和可移植应用程序的C++开发,这个类库和C++标准库可以很好的集成并填补C++标准库的功能空缺。POCO库的模块化、高效的设计及实现使得POCO特别适合嵌入式开发。在嵌入式开发领域,由于C++既适合底层(设备I/O、中断处理等)和高层面向对象开发,越来越流行。当然POCO也准备好了面对企业级挑战。

Poco 官网

在这里插入图片描述

简化C++开发

POCO C++库是强大的跨平台C++库,用于构建在桌面、服务器、移动、物联网和嵌入式系统上运行的基于网络和互联网的应用程序。

一、概述

Poco C++库是:

  • 一系列C++类库,类似Java类库,.Net框架,Apple的Cocoa;
  • 侧重于互联网时代的网络应用程序
  • 使用高效的,现代的标准ANSI/ISO C++,并基于STL
  • 高可移值性,并可在多个平台下可用
  • 开源,并使用Boost Software License发布
  • 不管是否商用,都完全免费

二、Poco库概览

1、特性

DynamicAny与Any类

Cache框架

基于OpenSSL的密码系统

日期,时间类库

事件和通知框架

FTP客户端

跨平台的文件系统类库

HTML表单类库

HTTP客户端和服务端(支持SSL),C++ 服务器页面编译器

日志框架

多线程框架(线程池,活动对象,工作队列等)

POP3客户端类库

跨平台,一次编写,多平台编译和运行

进程管理和进程间通信类库

反射框架

基于PCRE的正则表达式

SMTP客户端类库

数据库访问类库(SQLite,MySQL, ODBC)

支持SSL/TLS,基于OpenSSL

动态类库加载

先进的内存和指针管理(Buffer, Pool)

Socket类库

网络数据流类库,支持Base64,HexBinary编解码,压缩等等

字符串格式化和其它字符串工具类库

TCP服务器框架(多线程)

文本编码和转换

Tuples

URI支持

支持UTF8和Unicode编码

UUID生成器

XML生成和解析器

Zip文件操作类库

2、Poco的使命

Poco是一个强大的类库,并易于构建自己的应用程序

Poco帮助你创建跨平台的应用程序(一次编写,多平台编译和运行)

模块化和可扩展,可应用于嵌入式到企业级程序

提供全面,易懂的编程接口

使用C++语言,快速且高效

Poco崇尚简易

在设计,代码风格和文档上保持一致

Poco强调代码质量,包括可读性,综合性,一致性,编码风格和可测试性

Poco使得C++编程更加容易

3、指导方针

高度关注代码质量,编码风格,一致性,可读性

高度关注测试

注重实用性

基于现有的,可靠的组件开发

4、版本历史

Summer 2004: Günter Obiltschnig started development

February 2005: First release on SourceForge

(Release 0.91 under Sleepycat license)

May 2005: First contributions by Aleksandar Fabijanic

January 2006: Release 1.0

March 2006: Release 1.1

July 2006: Moved to Boost license, POCO Community Website

August 2006: Release 1.2

May 2007: Release 1.3

July 2010: Stable Release 1.3.7,

about 20 contributors, used in 100s of projects

5、支持平台

Microsoft Windows

Linux

Mac OS X

HP-UX, Solaris, AIX*

Embedded Linux (uClibc, glibc)

iOS

Windows Embedded CE

QNX

6、Poco应用场景

创建自动化的中间件和设备

工业自动化和工业设备

流量控制系统

健康系统

测量,数据收集和测试系统

消费电子产品和家庭自动化产品

测量

航空交通管理系统

VoIP

票务和入口控制系统

包装应用程序

7、Poco的优势

全面的,完整的C++框架,可减少开发工作,快速让产品走向市场

易学易使用,以及相当多的示例代码和良好的文档

原生的C++代码,性能优秀,低内存占用

平台无关,一处编写,跨平台编译和运行

大多数情况下,可以开发机上完成开发和调试工作

可以非常容易的迁移到新平台

8、设计 & 实现

基于现代的、标准的ANSI C++编写,使用C++ STL库。

模块化设计,极少的外部依赖,易于编译和使用。结合传统的面向对象与现代的C++设计,代码易读,代码风格统一,以及相当全面的测试用例。

9、支持平台

桌面/服务器: Windows, Linux, Mac OS X, Solaris, HP-UX, AIX

嵌入式系统: Windows Embedded CE, Embedded Linux (uClibc or glibc), iOS, QNX, VxWorks, Android

最低系统要求: 75 MHz ARM9, 8 MB RAM (Embedded Linux).

10、核心特性

支持Any 和 DynamicAny 的动态类型

提供缓存框架

日期和时间

事件与通知框架

基于PCRE的正则表达式

动态库加载

完美的指针和内存管理 (buffer, pool)

字符串格式化和工具

tuples

11、压缩

基于zlib的压缩/解压类

创建和解压ZIP文件

12、加密

支持多种hash算法

支持X509数字证书

对称的和 RSA算法

支持streams加解密

基于OpenSSL

13、数据库

不同的数据库提供了统一的访问接口(SQLite, MySQL, ODBC)

自动数据类型匹配

支持集合类 (std::vector, std::set, std::map, etc.)

支持记录集和tuples

支持连接池

14、文件系统

跨平台的文件路径操作

目录列表

通配符支持

文件属性管理

15、日志

可扩展的日志框架,可拔插的日志通道和消息格式化

日志可输出到终端,日志文件,syslog,远程syslog,Windows事件服务

16、多线程

线程和线程同步类库

线程池

工作队列

活动对象

任务管理

定时器

17、网络

流,数据报,多播,服务器和原生socket.

TCP服务器框架(多线程)

反射服务器框架

HTTP(S)客户和服务器框架

HTTP认证

CSP(C++ Server Page)编译器

FTP客户端

SMTP和POP3客户端

(libPoco.com翻译,转载请注明)

支持URI, UUID

HTML表单处理

MIME支持

基于 OpenSSL支持SSL/TLS

WebSocket (RFC 6455) 客户和服务器

18、进程管理和 IPC

进程启停

进程间同步

共享内存

19、流

Base64 和 HexBinary 编解码

压缩(zlib)

行结束符车换

内存stream

文本编码转换

URI流读取

20、文本编码

支持UTF-8 和 Unicode

文本编码和转换

字符分类

21、工具类

支持命令行和服务器程序框架

命令行参数解析器

配置文件解析

支持Unix和Windows后台服务

22、XML

基于 Expat 的XML解析

SAX2 (Simple API for XML, version 2) 解析器

DOM (Document Object Model, Level 1-3) 解析器

XML生成器




参考资料:
POCO C++库入门指南(翻译)
Poco C++库简介
Poco C++类库使用说明
poco C++中文学习资料
开源免费的C/C++网络库(c/c++ sockets library) 七剑下天山
POCO C++库学习和分析 – 日志
Poco库完全使用手册

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值