阅读更多

1顶
0踩

开源软件

HP-Socket

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

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

v5.3.1 更新

一、Linux版本更新

  1. Android NDK 支持:所有组件源码均可使用Android NDK编译,在Android平台上运行
  2. 增加 _ICONV_DISABLED 预编译宏用于关闭 iconv 库功能
  3. 增加 _ZLIB_DISABLED 预编译宏用于关闭 zlib 库功能
  4. 如果想去除 SSL 或 HTTP 组件,可以分别定义 _SSL_DISABLED 或 _HTTP_DISABLED 宏重新编

hp-socket for android

hp-socket for android

二、Windows版本更新

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

三、其它更新

  1. http-parser 解析器升级到 2.8.1 版本
  2. OpenSSL 版本升级到 1.1.0h
  3. jemalloc 版本升级到 5.0.1 版本

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

hp ssl

新增 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

hp http

新增 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
1
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 自己动手写一个编译器

    Pcode 是 TinyC 编译器的中间代码,是本人参考 pascal 编译器的中间代码 pcode 、并结合逆波兰表达式(后缀表达式)的逻辑后,设计出的一种非常简单的、基于栈和符号表的虚拟代码。Pcode 虚拟机是一个用来运行 Pcode 命令的、假想的机器,它包括:一个代码区(code)、一个指令指针(eip)、一个栈(stack)、一个变量表(var_table)、一个函数表(func_table)以及一个标签表(label_table)。

  • 从零开始,学习如何编写自己的编译器

    编译器、转译器和解释器是三个类似的概念。编译器是一种程序,它将整个程序的源代码转换为计算机处理器可以执行的机器代码。转译器用于将一种高级语言转换为另一种高级语言,例如将Java转换为Javascript。解释器是一种直接读取并执行源代码的程序,不会创建可执行程序。

  • 编译器(Compiler)及c/c++编译器安装(c+安装)、开发环境

    文中主要讲述了常用编程语言的编译器的特点,GCC、MinGW、MinGW-w64 、TDM-GCC、Cygwin、MSYS、MSYS2的区别,MinGW-w64编译器套件下载及安装,安装后的环境变量配置(设置),编译器的运行及其与集成开发环境的关系、编译器的来源。

  • 如何开发一个深度学习编译器

    它可以自动地将高级深度学习模型表示转化为底层的计算图和代码,以便在不同的硬件平台上进行高效的执行。但是,本文提供的示例代码可以作为一个起点,帮助你理解深度学习编译器的基本原理和实现方式。生成目标代码的过程可以通过遍历AST并根据编译器的目标平台生成相应的代码指令。深度学习编译器的输入通常是高级的深度学习模型表示,如图形计算图或中间表示(例如,ONNX或TensorFlow的图表示)。编译器的输出是底层的计算图和代码,可以由底层的运行时系统执行。它将输入的模型表示转化为抽象的代码结构,方便后续的分析和优化。

  • 前端必备开发编译器详解

    前端开发编译器有很多,例如:WebStorm、VS Code、HBuilder X、Sublime Text等等。在这里就不一一介绍了,这里主要讲解VS Code和HBuilder X 编译器。介绍VS Code和HBuilder X的下载安装、常用快捷键、实用插件推荐等

  • 写一个编译器非常简单(第 1 部分)

    是的,不是使用与变量名称相对应的字符串,而是使用表示该变量在内存中的位置的索引。在这篇博客中,我打算向十几岁的自己展示如何编写一个代码生成器,事实上,一点也不复杂,它可以在几个周末内完全完成。不幸的是,当正确的项在中间步骤中也在’ %rcx '中存储一些东西时,这将不起作用。然后,为了能够运行它,我们只需添加一些程序集,该程序集将接受两个参数并将它们存储在堆栈槽 0 和 1 中,并在执行代码后返回。在更完整的编译器中,前面的步骤将负责为每个声明的变量分配栈槽,并将变量名称转换为栈槽。

  • 自己动手开发编译器(一)编译器的模块化工程

    原文地址为:自己动手开发编译器(一)编译器的模块化工程 本系列的第一篇,我想概述一下编译器的构造,同时帮助大家了解编译器中各个组成部分的用途。想必大家看别的编译原理书籍,大都在第一章或者序言之类的地方,将编译器分成许多模块,然后每一个模块负责编译的特定阶段,最后串起来组成完整的编译器。比如下面这张图就是虎书(Modern Compiler by Andrew W. Appel)第一章中出现的编译器阶段示意图: 那么,为什么要将编译器拆成一个个阶段,一个个模块呢?答案是,为了更加容易设计和理解。..

  • 如何构建一个简单的编译器

    但通过理解和实践这个简单的编译器,您可以对编译器的基本原理有一个初步的了解,并在此基础上深入学习和开发更复杂的编译器。语法分析的目标是根据词法分析阶段生成的标记序列,构建一个抽象语法树(Abstract Syntax Tree,AST)。遇到左括号时,我们创建一个新的列表作为当前节点的子节点,并将当前节点移动到新的子节点上;在软件开发领域中,编译器是一种重要的工具,用于将高级语言的代码转换为机器语言,以便计算机能够理解和执行。代码会遍历源代码的每个字符,根据字符的类型进行判断,并将标记存储在一个列表中。

  • 开发一个编译器

    1、目的:开发一个编译器 1、编译器简介: 编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。 一个现代编译器的主要工作流程:源代码(source code) →预处理器(preprocessor) →编译器(compiler) →目标代码(object code) →链接器(Linker) → 可执行程序(executables) ...

  • 编译器开发语言选择:Rust 还是 OCaml

    【CSDN 编者按】这篇文章详细比较了 Rust 和 OCaml 在编译器开发中的优势和劣势。作者通过对两种语言的特性、性能、生态系统等方面的深入分析,为读者提供了一个全面的视角来理解这两种语言在编译器开发中的应用。原文链接:https://hirrolot.github.io/posts/compiler-development-rust-or-ocaml.html未经允许,禁止转载!作者 | ...

  • 【Linux系统学习】系统编程开发工具编译器gcc/g++使用

    Linux系统编程开发工具编译器gcc/g++篇!!!超详解!!!入门必看

  • c语言编译器是怎样开发的,如何编写属于自己的 C 语言编译器

    本文为编写 C 语言编译器系列文章的第一篇,为此我先说明一下我要如此做的一些理由:1. 通过编写过程,你会对抽象语法树(AST)以及程序如何表示和操作其他程序有清晰地了解,并可以熟练地使用 linters、静态分析器与各种各样的元编程。2. 你将对汇编,调用约定,以及所有相关的技术细节有个系统了解。3. 由于这是很困难的项目,所以整个过程我都在探索,有不对的地方请大家多指正。在过去的几个星期里,我...

  • GCC编译器简明教程(Linux下C语言开发环境的搭建)

    市面上常见的 Linux 都是发行版本,典型的 Linux 发行版包含了 Linux 内核、桌面环境(例如 GNOME、KDE、Unity 等)和各种常用的必备工具(例如 Shell、GCC、VIM、Firefox 等),国内使用较多的是 CentOS、Ubuntu(乌班图)、Debian、Redhat 等。 Linux 主要应用于各种服务器(例如网站服务器、数据库服务器、DNS服务器、邮件服务器...

  • 编译器原理与源码实例讲解:22. 编译器的应用领域与案例分析

    1.背景介绍 编译器是计算机科学的一个重要领域,它涉及到编程语言的设计、实现和优化。编译器的主要目标是将高级语言的程序代码转换为计算机可以直接执行的低级语言代码,即机器代码。这个过程称为编译。 在过去的几十年里,编译器技术发展迅速,它们已经成为了许多现代软件系统的核心组件。例如,Java、C++、Python等编程语言的编译器已经广泛应用于各种领域,如操作系统、数据库、网络应用、游戏等。 在...

  • 鸿蒙系统设备开发之编译原理 解耦 第三方库交叉编译 详解

    在Linux下,我们习惯了使用gcc、g++或其它交叉编译工具链,对C/C++应用程序进行编译。但是,在鸿蒙系统设备开发指导文档中,我们发现编写1个“Hello World”应用程序,是通过编辑BUILD.gn文件,与完整的鸿蒙系统全套代码一起整体编译打包的,整个流程耗时很长,耦合性太高。因此,本文将详细解析鸿蒙应用的编译原理,将应用编译和鸿蒙源码编译解耦,达到Linux下编译的效果,并提供一些第三方库交叉编译的案例,例如libcurl、openssl库等一、解析编译原理1、编译解析。

  • 编译器原理与源码实例讲解:编译器的可扩展性设计

    1.背景介绍 编译器是计算机科学领域的一个重要组成部分,它负责将高级语言的代码转换为计算机可以理解的低级语言代码,即机器代码。编译器的设计和实现是一项复杂的任务,需要涉及到语法分析、语义分析、代码优化等多个方面。本文将从编译器的可扩展性设计的角度进行探讨。 1.1 编译器的可扩展性设计的重要性 在现实生活中,编译器是软件开发过程中的一个重要环节,不同的编程语言需要对应的编译器来进行代码编译。...

  • C语言学习第一步——编译器和集成开发环境的了解与选择

    编译器及集成开发环境的介绍与优缺点分析

  • 01 | 理解代码:编译器的前端技术

    在开篇词里,分享了一些使用编译技术的场景。其中有的场景,你只要掌握编译器的前端技术就能解决。比如文本分析场景,软件需要用户自定义功能的场景以及前端编程语言的翻译场景等。而且咱们大学讲的编译原理,也是侧重讲解前端技术,可见编译器的前端技术有多么重要。当然了,。它通常只跟语言的语法有关,跟目标机器无关。。为了方便理解,用一张图直观地展现了编译器的整个编译过程。你可以看到,编译器的“前端”技术分为和三个部分。而它主要涉及自动机和形式语言方面的基础的计算理论。

  • Linux入门:开发工具(2)

    gcc和makefile

  • 20 | 高效运行:编译器的后端技术

    前 18 节我们主要探讨了编译器的前端技术,它的重点,是让编译器能够读懂程序。无结构的代码文本,经过前端的处理以后,就变成了 Token、AST 和语义属性、符号表等结构化的信息。基于这些信息,我们可以实现简单的脚本解释器,这也从另一个角度证明了我们的前端处理工作确实理解了程序代码,否则程序不可能正确执行嘛。实际上,学完前端技术以后,我们已经能做很多事情了,比如让软件有自定义功能,就像我们在15 讲中提到的报表系统,这时,不需要涉及编译器后端技术。

Global site tag (gtag.js) - Google Analytics