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库完全使用手册
C++-网络库:Poco概述【开源的C++类库的集合】【提供简单的、快速的网络和可移植应用程序的C++开发】【和C++标准库可以很好的集成并填补C++标准库的功能空缺】【适合嵌入式开发】相关推荐
- Silicon Lab推出新一代EFM8系列:功能强大的嵌入式开发平台
Silicon Laboratories(芯科科技)最近为那些对低成本.低功耗.高性能混合信号应用感兴趣的用户提供了一系列新的微控制器和开发板. 8051架构 Silicon Laboratories ...
- ML之mlxtend:基于iris鸢尾花数据集利用逻辑回归LoR/随机森林RF/支持向量机SVM/集成学习算法结合mlxtend库实现模型可解释性(决策边界可视化)
ML之mlxtend:基于iris鸢尾花数据集利用逻辑回归LoR/随机森林RF/支持向量机SVM/集成学习算法结合mlxtend库实现模型可解释性(决策边界可视化) 目录 相关文章 ML之mlxten ...
- SAP UI5 应用开发教程之一百零三 - 如何在 SAP UI5 应用中消费第三方库试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 作者简介 Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今.Jerry 是 SAP 社区导师,S ...
- 合宙新一代物联网开源操作系统LuatOS,开启行业嵌入式开发新生态!
合宙新一代物联网开源操作系统LuatOS,开启行业嵌入式开发新生态! 开源开放,创新突破,让万物互联更简单! LuatOS是什么? LuatOS特色及应用 LuatOS资料下载及技术支持 开源开放,创 ...
- 五款软件快速解决网络故障问题
网络故障的排查不止是网络工程师独有的事情,在弱电项目中也会经常遇到各种各样的网络故障,每当添加新的设备或网络发生变更时,新的问题就会出现,而且很难快速确定问题在哪里.每一位网络工程师或从事网络相关的人 ...
- 全功能音视频互动开发平台
全功能音视频互动开发平台 云智真音视频解决方案,即云智真音视频互动开发平台(云智真音视频SDK开发包)通过封装音视频编解码.流媒体处理以及P2P等专业复杂技术,为上层应用提供简单的API控制接口,实现 ...
- C++跨平台开源库POCO学习笔记
原文链接:http://grow.sinaapp.com/?p=1271 POCO(pocoproject.org)看起来是很不错的C++跨平台开源库,包含网络(HTTP.FTP等).正则.XML.Z ...
- python3 模板库_Python3 标准库概览_Python教程_我爱模板网 - 提供下载各种免费建站资源,免费网站模板,免费网页特效,让你爱上建站!...
Python3 标准库概览 操作系统接口 os模块提供了不少与操作系统相关联的函数. >>> import os >>> os.getcwd() # 返回当前的工作 ...
- 微信和支付宝支付模式详解及实现(.Net标准库)- OSS开源系列
2019独角兽企业重金招聘Python工程师标准>>> 支付基本上是很多产品都必须的一个模块,大家最熟悉的应该就是微信和支付宝支付了,不过更多的可能还是停留在直接sdk的调用上,甚至 ...
最新文章
- C语言linux getopt_long()函数(命令行解析)(getopt、getopt_long_only)(短选项 -,长选项 --)(option结构体)(optind、optarg变量)
- 天地图专题五:在天地图上绘制电子区域并保存数据
- Spring Boot----SpringBoot整合 Dubbo 和 Zookeeper
- c# uri.host_C#| Uri.EscapeUriString()方法与示例
- java 执行顺序混乱_java类执行顺序问题
- linux脚本中空格怎么显示,linux vim 显示空格
- 嵌入式软件设计第7次实验报告
- Happens before
- 批量抓取QQ群成员的QQ号、昵称、群名片
- 台达PLC解密次数限制
- 基于三维WebGL技术的公安三维项目
- matlab年平均,MATLAB平均每5个元素
- 湖南大学计算机专业毕业生待遇,分享湖南大学2017年毕业生就业基本情况及质量薪资...
- Debezium-Flink-Hudi:实时流式CDC
- ❤女朋友生日❤ HTML+css3+js 实现抖音炫酷樱花3D相册 (含背景音乐)程序员表白必备
- 正确简单地安装Tensorflow和Keras
- CSS中表示cellpadding和cellspacing的方法
- The_Last_Geass
- 自然语言处理入门(5)——基于WordArt的AGM手机评论词频分析
- JAVA毕业设计华北地区阔叶林木叶部病虫害图像管理系统计算机源码+lw文档+系统+调试部署+数据库
热门文章
- 关于java的毕业设计_我的java毕业设计之路回顾
- 与微型计算机运算速度无关的是,四川大学《计算机应用基础0006》17春在线作业1...
- Java对接云mas发送短信(https方式)
- 互联网行业职位介绍——PM,RD,FE,UE,UI,QA,OP,DBA,BRD,MRD, PRD,FSD等
- negroni-gzip源代码分析
- pg数据库numeric对应oracle,Oracle类型number与PG类型numeric对比和转换策略
- 【文献翻译】思科路由器安全配置合规性的SCAP基准-SCAP Benchmark for Cisco Router Security Configuration Compliance
- JAVA 强制终止程序
- 生日游戏html,创意生日聚会游戏
- 【技术栈——00061】搭建关于python项目docker镜像的Dockerfile文件示例(自己的)