高性能跨平台网络通信框架 HP-Socket v5.4.3

Ldcsaa 2018-12-06 10:09:37
加精


项目主页 : http://www.oschina.net/p/hp-socket
开发文档 : http://www.docin.com/p-2154702652.html
下载地址 : https://github.com/ldcsaa/HP-Socket
QQ Group : 75375912, 44636872

HP-Socket提供以下几类组件,详细内容请参考《HP-Socket网络通信框架开发指南》:

Server:基于IOCP / EPOLL通信模型,并结合缓存池、私有堆等技术实现高效内存管理,支持超大规模、高并发通信场景。
Agent:Agent组件实质上是Multi-Client组件,与Server组件采用相同的技术架构。一个Agent组件对象可同时建立和高效处理大规模Socket连接。
Client:基于Event Select / POLL通信模型,每个组件对象创建一个通信线程并管理一个Socket连接,适用于小规模客户端场景。

v5.4.3 更新

一、HTTP 组件更新
1. HTTP 组件可以手工启动 HTTP 通信,从而可以对 HTTP 通信执行 SOCKS 代理服务器设置等前置操作
2. HTTP 组件(Server/Agent/Client)增加以下接口方法支持手工启动 HTTP 通信
1) StartHttp():手工启动 HTTP 通信,当通信组件设置为非自动启动时,需要调用本方法启动 HTTP 通信
2) SetHttpAutoStart():设置 HTTP 通信启动方式(默认:TRUE,自动启动)
3) IsHttpAutoStart():获取 HTTP 通信启动方式

二、其他更新
1. Bug 修复:UDP Server 在高并发场景下可能重复触发 OnAccept 事件

v5.4.2 更新

一、SSL 组件更新
1. SSL 组件可以手工启动 SSL 握手,从而可以对 SSL/Https 通信执行代理服务器设置等前置操作
2. SSL 组件(Server/Agent/Client)增加以下接口方法支持手工启动 SSL 握手
1) StartSSLHandShake():手工启动 SSL 握手,当通信组件设置为非自动握手时,需要调用本方法启动 SSL 握手
2) SetSSLAutoHandShake():设置通信组件握手方式(默认:TRUE,自动握手)
3) IsSSLAutoHandShake():获取通信组件握手方式

二、其他更新
1. 所有可能导致 Socket 关闭的组件接口方法都在 Socket 通信线程中异步触发 OnClose 事件
2. Server 与 Agent 组件的 DIRECT 发送策略也支持通过 GetPendingDataLength() 方法实现流控
3. Server 与 Agent 组件的 Disconnect() 方法不再支持‘非强制断开’(仍然保留bForce 参数),调用时都会强制断开
4. OnSend 事件支持 三种同步策略
1) OSSP_NONE:不同步(默认)
2) OSSP_CLOSE:同步 OnClose
3) OSSP_RECEIVE:同步 OnClose 和 OnReceive(只用于 TCP 组件)
5. OpenSSL 版本升级到 1.1.0i 版本

v5.4.1 更新

一、加入线程池公共组件
1. 加入 IHPThreadPool 线程池公共组件
2. IHPThreadPool 主要方法
1) Start:启动线程池
2) Stop:关闭线程池
3) Submit:提交任务
4) AdjustThreadCount:调整线程池大小

二、接口更新
1. IAgent 接口的 Connect() 方法增加参数 usLocalPort,连接时可绑定本地端口
2. IClient 接口的 Start() 方法增加参数 usLocalPort,连接时可绑定本地端口
3. IClient/IAgent/IServer 接口增加方法 IsConnected(),检测是否有效连接

三、其它更新
1. 修复已知问题
2. 性能优化

v5.3.2 更新

一、Linux版本更新
1. Android NDK 支持:所有组件源码均可使用Android NDK编译,在Android平台上运行
2. Bug修复:5.3.1版本中用dlopen()动态加载共享库失败
3. 增加 _ICONV_DISABLED 预编译宏用于关闭 iconv 库功能
4. 增加 _ZLIB_DISABLED 预编译宏用于关闭 zlib 库功能




二、Windows版本更新
1. 修复 C# SDK 关于 SSL 初始化失败 Bug
2. 增加 _ZLIB_DISABLED 预编译宏用于关闭 zlib 库功能

三、其它更新
1. http-parser 解析器升级到 2.8.1 版本
2. OpenSSL 版本升级到 1.1.0h
3. jemalloc 版本升级到 5.1.0 版本

v5.2.1 更新

一、发布包调整
1. 版本号修订:Windows 和 Linux 发行版使用统一版本号
2. 发布文件不再区分非 SSL DLL 和 SSL DLL,统一为 HPSocket DLL 和 HPSocket4C DLL
3. 发布文件默认包含 SSL 和 HTTP 组件
4. 如果想去除 SSL 或 HTTP 组件,可以分别定义 _SSL_DISABLED 或 _HTTP_DISABLED 宏重新编

二、新增 Linux SSL 组件
1. Server: SSL Server, SSL Pull Server, SSL Pack Server
2. Agent: SSL Agent, SSL Pull Agent, SSL Pack Agent
3. Client: SSL Client, SSL Pull Client, SSL Pack Client


三、新增 Linux HTTP 组件
1. Server: HTTP Server, HTTPS Server
2. Agent: HTTP Agent, HTTP Agent
3. Client: HTTP Client, HTTP Client, HTTP Sync Client, HTTPS Sync Client


四、新增 Linux Demo
1. testecho-ssl: (SRC) SSL simple test echo server/agent/client
2. testecho-ssl-pfm: (SO) SSL performance test echo server/agent/client
3. testecho-ssl-pull: (SO) SSL pull echo server/agent/client
4. testecho-ssl-pack: (4C SO) SSL pack echo server/agent/client
5. testecho-http: (SRC) HTTP simple test echo server/agent/client/sync-client
6. testecho-http-4c: (4C SO) HTTP simple test echo server/agent/client/sync-client
...全文
7162 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
qwe3632035 2019-04-14
  • 打赏
  • 举报
回复
谢谢LZ。。。
Ldcsaa 2019-03-04
  • 打赏
  • 举报
回复
高性能跨平台网络通信框架 HP-Socket v5.4.4
https://bbs.csdn.net/topics/392520465
末先 2018-12-25
  • 打赏
  • 举报
回复
lx624909677 2018-12-20
  • 打赏
  • 举报
回复
轻箬笠 2018-12-20
  • 打赏
  • 举报
回复
接分
xwj 2018-12-18
  • 打赏
  • 举报
回复
学习了,谢谢分享
xwj 2018-12-17
  • 打赏
  • 举报
回复
学习了,谢谢分享
weixin_44124917 2018-12-17
  • 打赏
  • 举报
回复
支持!
@风轻云淡_ 2018-12-11
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
66666666666666666666666666
jacksonfan 2018-12-09
  • 打赏
  • 举报
回复
Ldcsaa 2018-12-07
  • 打赏
  • 举报
回复
引用 13 楼 赵4老师 的回复:

怎么还没推荐首页呀?老师!!
zhangjinsong8727 2018-12-06
  • 打赏
  • 举报
回复
一如既往支持!
qq_41804166 2018-12-06
  • 打赏
  • 举报
回复
感谢,大神...................
casmzxp 2018-12-06
  • 打赏
  • 举报
回复
感谢辛苦的付出,支持中
u010499360 2018-12-06
  • 打赏
  • 举报
回复
很强大,用的方便
勤奋刻苦c++ 2018-12-06
  • 打赏
  • 举报
回复
感谢大佬们的无私奉献
weixin_43197280 2018-12-06
  • 打赏
  • 举报
回复
zan.赞赞
nyistshhjmf 2018-12-06
  • 打赏
  • 举报
回复
高性能 非常好用
当凸遇见凹凹 2018-12-06
  • 打赏
  • 举报
回复
疯狂打Call
加载更多回复(6)
学习并掌握C++2.0(11+14+17+20)的新特性,学习线程及线程池的应用 ---------------------------------------------------给小白学员的3年学习路径及计划技术方面分三块:1.纯开发技术方向2.音视频流媒体专业方向3.项目实战---------------------------------------------------1.纯开发技术方向(1) C++必须要过硬(至少学会10本经典好书)(2) 系统级编程(Windows、Linux),必须特别熟练系统API,灵活运用(3) 框架与工具(Qt、MFC):必须精通其中一种。(4) 架构与设计模式:需要提升一个高度,不再是简单的编码,而是思维模式。(5) 驱动级别(如果有兴趣,可以深入到驱动级:包括Windows、Linux)(6) 最好学习点Java+Html+javascript等WEB技术。2.音视频流媒体专业方向(1) 音视频流媒体基础理论:   必须认真学会,否则看代码就是看天书(2) 编解码方向:精通h.264,h.265(hevc), 包括理论和各个开源库(ffmpeg,libx264,libx265,...)。(3) 直播方向:  精通各种直播协议(rtsp,rtmp,hls,http-flv,...), 钻研各个开源库(live555,darwin,srs,zlmediakit,crtmpserver,...)(4) 视频监控:  理论+开源库(onvif+281818)(EasyMonitor、iSpy、ZoneMinder(web)、...) 3.项目实战(1) Qt项目:  至少要亲手练习10个实战项目(网络服务器、多线程、数据库、图像处理、多人聊天、等等)(2)音视频项目:包括编解码、视频监控、直播等各个方向,都需要亲手实战项目,包括视频服务器、后台管理系统、前端播放器(多端)---------------------------------------------------  第1章 C++11新特性 41). nullptr关键字与新语法 42). auto和decltype类型推导 6 auto讲解 6 auto示例 7 decltype 83). for区间迭代 94). 初始化列表 105). 模板增强 11外部模板 11类型别名模板 12默认模板参数 126). 构造函数 13委托构造 13继承构造 147). Lambda 表达式 158). 新增容器 20std::array 20std::forward_list 21无序容器 22元组 std::tuple 239). 正则表达式 2610). 语言级线程支持 28多线程库简介 2811). 右值引用和move语义 31右值引用和move语义 32转移左值 3412). constexpr 35第2章 C++14新特性 36Lambda 函数 36类型推导 37返回值类型推导(Return type deduction) 37泛型lambda 39[[弃用的]]  [[deprecated]]属性 40二进制数字和数字分隔符 41第3章 C++17新特性 42安装GCC10.2 42安装msys2-x86_64-20200720 42更新镜像 42更新软件库 43安装 MinGW64 等必要的软件 43环境变量Path 43编译命令 43constexpr 44typename 45折叠表达式 47结构化绑定 48条件分支语句初始化 49聚合初始化 50嵌套命名空间 52lambda表达式捕获*this的值 53改写/继承构造函数 54用auto作为非类型模板参数 55__has_include 56fallthrough 57nodiscard 57maybe_unused 58第4章 C++20新特性 59编译命令 59concept 59typename 60explicit 61constinit 62位域变量的默认成员初始化 62指定初始化 63基于范围的for循环初始化 64放宽基于范围的for循环,新增自定义范围方法 65嵌套内联命名空间 66允许用圆括弧的值进行聚合初始化 67unicode字符串字面量 68允许转换成未知边界的数组 68likely和unlikely 69第5章 C++2.0(11/14/17/20)总结与分析 705.1 C语言与C++ 715.2 语言可用性的强化 725.2.1 常量 725.2.2 变量及其初始化 735.2.3 类型推导 745.2.4 控制流 765.2.5 模板 775.2.6 面向对象 815.3 语言运行期的强化 835.3.1 Lambda 表达式 835.3.2 右值引用 865.4 容器 885.4.1 线性容器 885.4.2 无序容器 895.4.3 元组 895.5 智能指针与内存管理 905.5.1 RAII 与引用计数 905.5.2 std::shared_ptr 905.5.3 std::unique_ptr 915.5.4 std::weak_ptr 91第6章 C++2.0多线程原理与实战 93什么是并发 93并发的方式 93为什么使用并发 95线程简介 96创建线程的三种方式 971. 通过函数 972.通过类对象创建线程 993.通过lambda表达式创建线程 101thread线程的使用 101互斥量与临界区 105期物Future 111条件变量 112原子操作 114内存模型 118第7章 C++2.0线程池原理与实战 120线程与线程池的基本原理 1201)、线程 1202)、线程的生命周期 1213)、什么是单线程和多线程 1214)、线程池 1225)、四种常见的线程池 123线程池的架构与流程 123线程池代码实战 125    
Apache JMeter (apache-jmeter-5.4.3.zip)可用于测试静态和动态资源、Web 动态应用程序的性能。 它可用于模拟服务器、服务器组、网络或对象上的重负载,以测试其强度或分析不同负载类型下的整体性能。 Apache JMeter 功能包括: 能够加载和性能测试许多不同的应用程序/服务器/协议类型: 网络 - HTTP、HTTPS(Java、NodeJS、PHP、ASP.NET,...) SOAP/REST 网络服务 FTP 通过 JDBC 数据库 LDAP 通过 JMS 的面向消息的中间件 (MOM) 邮件 - SMTP(S)、POP3(S) 和 IMAP(S) 本机命令或 shell 脚本 TCP Java 对象 全功能测试 IDE,允许快速记录测试计划(来自浏览器或本机应用程序)、构建和调试。 CLI 模式(命令行模式(以前​​称为非 GUI)/无头模式)从任何 Java 兼容操作系统(Linux、Windows、Mac OSX 等)加载测试 完整且可随时呈现的动态 HTML 报告 通过从最流行的响应格式、HTML、JSON、 XML或任何文本格式中提取数据的能力轻松关联 完全可移植性和100% Java 纯度。 完整的多线程框架允许多个线程并发采样和不同线程组同时采样不同功能。 缓存和离线分析/重放测试结果。 高度可扩展的核心: 可插拔采样器允许无限的测试功能。 可编写脚本的采样器(与 JSR223 兼容的语言,如Groovy和 BeanShell) 可以使用可插拔计时器选择多个负载统计信息。 数据分析和可视化插件允许极大的可扩展性和个性化。 函数可用于为测试提供动态输入或提供数据操作。 通过适用于 Maven、Gradle 和 Jenkins 的第3方开源库轻松实现持续集成。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧