Poco库

1.POCO介绍

POCO C++库是一组开源C++类库的集合,它们简化及加速了用C++来开发以网络功能为核心的可移植程序的过程。它们具有模块化、高效的设计与实现,使得POCO C++库特别适合于进行嵌入式开发。而这是C++编程语言正在变得越来越流行的领域,因为,它既能进行底层(设备I/O、中断处理,等等)的开发,也能进行高级的面向对象的开发。当然,POCO也已经准备好面对企业级开发的挑战了。

POCO由4个核心库及若干个附加库组成。核心库是:Foundation、XML、Util和Net。两个附加库是:NetSSL,Data。NetSSL为Net 库中的网络类提供SSL 支持;Data,用来以统一的形式访问不同的SQL 数据库。POCO致力于进行以网络功能为核心的跨平台C++软件的开发,可以类比于Ruby on Rails对于Web开发的作用——一个功能强大而又简单易用的平台,用来构建妳自己的应用程序。POCO是严格围绕标准ANSI/ISO C++来开发的,并且支持标准库。贡献者们努力地达到以下要素之间的平衡:使用高级的C++特性;保持那些类的可理解性;保持代码的干净、一致及易维护性。

Foundation 库

Foundation 库是 POCO 的心脏。 它包含着:底层平台的抽象层;常用的辅助类和函数。 支持内存管理、缓冲区管理,包括智能指针。提供字符串处理,Unicode文字支持,在不同的字符编码之间转换,包括 UTF-8 和 UTF-16 。 还提供了 对于数字 的格式化和解析功能的支持,包括一个类型安全的sprintf 变种。 还提供了以著名的PCRE库( http://www.pcre.org )为基础的正则表达式支持。

XML库

POCO XML库提供了对于XML的读取、处理和输出功能。支持工业标准的 SAX (版本2) 和 DOM接口。

Util库

主要是一个用来创建命令行程序服务器程序的框架。包含的功能:处理命令行参数(验证、绑定到配置属性,等等);以及管理配置信息。支持不同的配置文件格式——Java风格的属性文件、XML文件等。

Net库

POCO的Net库提供网络通信功能。支持: TCP、UDP、 ICMP、SSL、SMTP、POP3等。NetSSL 库,是利用OpenSSL ( http://www.openssl.org )实现的。 提供了两个用来构建TCP 服务器的框架—— 一个用来构建多线程服务器 (对于每个连接都使用一个线程,该线程取自一个线程池 ) ,一个用来构建接收者-响应者( Acceptor-Reactor ) 模式的服务器。 多线程的 Poco::Net::TCPServer 类和它的支持框架,同时也是POCO 的HTTP 服务器实现( Poco::Net::HTTPServer )的基础。 在客户端开 发方面, Net库提供了以下的类: 与 HTTP服务器通信 、使用FTP 协议发送及接收文件、使用SMTP 协议发送邮件 (包含附件)、从POP3服务器接收邮件。

参考:

  1. POCO文档翻译:POCO C++库入门指南
  2. https://pocoproject.org/docs/index.html