libhv

异步事件驱动库
授权协议 BSD
开发语言 C/C++
所属分类 程序开发、 高性能网络开发库
软件类型 开源软件
地区 国产
投 递 者 酆高翰
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

libhv 是一个跨平台的类似 libevent、libev、libuv 的异步事件驱动库,提供了更加简单的 API 接口和更加丰富的协议。

Features

  • 跨平台(Linux,Windows,Mac)
  • 事件循环(IO,计时器,空闲)
  • 启用IPv6
  • 使用OpenSSL
  • http客户端/服务器(包括https http1 / x http2 grpc)
  • http Web服务,indexof服务,api服务(支持RESTful API)
  • 协议
    • dns
    • ftp
    • smtp
  • 应用
    • ls
    • ifconfig
    • ping
    • nc
    • nmap
    • nslookup
    • ftp
    • sendmail
    • httpd
    • curl

具体介绍见项目README

  • 此文归纳整理和libhv源码分析相关的文章,献给感兴趣钻研libhv源码的同学。 如有其他同学有写过不错的libhv源码分析文章,欢迎联系我加上。 libhv是一个比libevent、libev、libuv更易用的跨平台c/c++国产网络库,用来开发TCP/UDP/SSL/HTTP/WebSocket/MQTT客户端/服务端。 项目地址:https://github.com/ithewei/lib

  • 日志快捷输出可以参考:C++ 日志输出 libhv日志封装 #pragma once #include <hv/hlog.h> #ifdef _ENBLE_LOG4CPLUS #include "LogUtil.h" #endif class XLog { public: static XLog& Instance() { static XLog instance; return

  • libhv是一个比libevent、libev、libuv更易用的跨平台国产网络库,可用来开发TCP/UDP/SSL/HTTP/WebSocket客户端/服务端。 项目地址:https://github.com/ithewei/libhv.git 码云镜像:https://gitee.com/libhv/libhv.git QQ技术交流群:739352073 libhv入门教程:https://h

  • C demo:参考目录:examples C++ demo:参考目录:evpp 啰嗦一句 如果作为服务器开发,不建议使用hv的log作为日志工具记录日志,因为该日志是同步写文件的,可能严重影响服务器效率,可以使用log4cplus或者其他。对于性能没有太高要求的程序,hvlog是一个便捷的开发工具。 目录结构分析 base目录:基于C实现跨平台的常用接口,例如线程,socket,时间计算,线程同步

  • libhv接口手册 libhv是一个类似于libevent、libev、libuv的跨平台网络库,提供了更简单的接口和更丰富的协议。 项目地址:https://github.com/ithewei/libhv.git 码云镜像:https://gitee.com/ithewei/libhv.git QQ技术交流群:739352073 libhv博客专栏:https://hewei.blog.csd

  • 使用libhv可以在200行内实现一个完整的jsonrpc框架,这得益于libhv新提供的一个接口 hio_set_unpack设置拆包规则,支持固定包长、分隔符、头部长度字段三种常见的拆包方式,调用该接口设置拆包规则后,内部会根据拆包规则处理粘包与分包,保证回调上来的是完整的一包数据,大大节省了上层处理粘包与分包的成本,该接口具体定义如下: typedef enum { UNPACK_B

  • 在上篇教程中,我们200行实现了一个纯C版的jsonrpc框架,使用的event模块+cJSON实现,本篇中我们将介绍200行实现一个C++版的protorpc框架,使用evpp模块+protobuf实现。 evpp模块是event模块的c++封装,具体介绍见evpp/README.md protobuf是google出品的序列化/反序列化结构化数据存储格式,具体介绍可参考我的另一篇博客proto

  • hbase.h 注: 阅读源码时最新代码为 2021年6月更新   按照官方推荐的源码阅读顺序,就先来看看base模块。 base模块主要目录结构如下: . ├── array.h 动态数组 ├── hatomic.h 原子操作 ├── hbase.h 基础函数 ├── hbuf.h 缓存 ├── hdef.h 常见宏定义 ├── heap.h 堆 ├── hendian.h 大小端 ├── he

  • 一、libh libhv是一个类似于libevent、libev、libuv的跨平台网络库,提供了更易用的接口和更丰富的协议。 项目开源地址:https://gitee.com/libhv/libhv 二、编译安装 Linux系统下编译非常简单,使用Makefile进行编译 ./configure make make install  编译完成后会生成头文件和库文件 三、websocket服务端测

 相关资料
  • 本文向大家介绍Node.js事件驱动,包括了Node.js事件驱动的使用技巧和注意事项,需要的朋友参考一下 Node.js事件驱动实现概览 虽然在ECMAScript的标准里并没有(也没有必要)明确规定“事件”,但是在浏览器中,事件作为一个极为重要的机制,给予JavaScript响应用户操作与DOM变化的能力;在Node.js中,异步事件驱动模型则是其高并发能力的基础。 学习JavaScript也

  • 8.1.3 事件驱动 图形构件组成了图形界面的可见部分,在这些可见构件的背后,还有不可见的程序逻辑。 就好比家用电器都提供操作面板,用户通过操作面板控制、使用电器功能,在面板的背后是 实现功能的电路逻辑。 GUI 应用程序的特点是注重与用户的交互,因此程序的执行取决于与用户的实时交互情 况。例如 Word 程序启动后,并非一路执行到程序结束,而是在做了必要的初始化工作后就 停下来,等待用户的下一步

  • 什么是 Netty Netty 是一个利用 Java 的高级网络的能力,隐藏其背后的复杂性而提供一个易于使用的 API 的客户端/服务器框架。Netty 提供高性能和可扩展性,让你可以自由地专注于你真正感兴趣的东西,你的独特的应用! 在这一章我们将解释 Netty 在处理一些高并发的网络问题体现的价值。然后,我们将介绍基本概念和构成 Netty 的工具包,我们将在这本书的其余部分深入研究。 一些历

  • 我有一个UserControl上的事件,我正在听: 具有以下签名: 在以下情况下,如何调用此异步方法: 不阻塞GUI线程 在调用我的异步方法后能够调用 能够在正确的(GUI)线程中调用。 我所尝试的: -- -- --

  • 然后,在发现步骤之后,它注册方法。 查看由JBoss Weld2提供的方法,我看到: 那么我的问题是,这些方法不会被调用两次吗?我的意思是,它们可能被注册两次,首先通过容器本身,然后通过调用方法。

  • 接收信号 import signal import os import time def receive_signal(signum, stack): print('Received:', signum) # Register signal handlers signal.signal(signal.SIGUSR1, receive_signal) signal.signal(si