libhv库的使用(linux/windows)

libhv库是一个跨平台国产网络库,用来开发TCP/UDP/SSL/HTTP/WebSocket客户端/服务端。

里面有许多示例程序:

├── hmain_test          命令行解析测试程序
├── hloop_test          事件循环测试程序
├── htimer_test         定时器测试程序
├── http_client_test    HTTP客户端测试程序
├── http_server_test    HTTP服务端测试程序
├── websocket_client_test    WebSocket客户端测试程序
├── websocket_server_test    WebSocket服务端测试程序
├── curl                HTTP客户端
├── httpd               HTTP服务端
├── nc                  网络客户端
├── nmap                主机发现
├── tcp_chat_server     TCP聊天服务
├── tcp_echo_server     TCP回显服务
├── tcp_proxy_server    TCP代理服务
└── udp_echo_server     UDP回显服务

源码可以在github上下载,叫libhv-master,也可下载我网盘的资源:

链接:https://pan.baidu.com/s/1f6q-U0n8FHBHIfvauvheCw 
提取码:7g4r

Linux: 

libhv库在linux下解压如上图,其中各示例代码在examples文件夹里。

那么怎么使用呢?首先第一步就是要得到动态库,他这里有Makefile,直接编译就好,编译完成如下图所示:

 

 我们需要使用的库有:

lib/libhv.so        (编译libhv-master获得)
//(libcrypto和libssl是我加解密用的,你们可能不需要,就不用调用,调用顺序不能反)
/usr/lib/aarch64-linux-gnu/libcrypto.so     (openssl相关库,我的是arm机器,linux可能目录有变化,或者需要自己安装)
/usr/lib/aarch64-linux-gnu/libssl.so        (openssl相关库,我的是arm机器,linux可能目录有变化,或者需要自己安装)

需要包含的目录有:

include/hv    (libhv-master目录下)
//(openssl是我加解密用的,你们可能不需要,就不用调用)
/usr/include/openssl

然后在examples文件夹找到你所需要的例子(TCP/UDP/SSL/HTTP/WebSocket客户端/服务端),改写测试程序即可

Win:

使用同一份代码,但是在windows上,不能直接make,要使用cmake,cmake具体操作自查。目前libhv-master仅支持VS2015以上的版本。 

cmake完成后,操作与linux一样, 不过需要注意的是,需要自己安装openssl(openssl是我加解密用的,你们可能不需要,就不用),得到相关库。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
libhv是一款基于C语言的轻量级网络,提供了HTTP服务端和客户端的支持。下面是使用libhv实现HTTP服务端的基本步骤: 1. 定义HTTP处理函数 首先需要定义一个处理HTTP请求的回调函数,可以是全局函数、静态函数或者成员函数。该回调函数会在每次收到HTTP请求时被调用,并传递HTTP请求和响应对象作为参数。例如: ```c++ #include "http_server.h" void on_http_request(const HttpRequest& req, HttpResponse& resp) { // 处理HTTP请求的代码 } ``` 2. 创建HTTP服务器对象 然后需要创建一个HTTP服务器对象,并设置它的监听地址和端口号。可以使用hv_http_server_create函数来创建HTTP服务器对象,并使用hv_listen_on_port函数设置监听地址和端口号。例如: ```c++ int main() { // 创建HTTP服务器对象 hv_http_server_t* server = hv_http_server_create(); // 设置监听地址和端口号 hv_listen_on_port(server, 8080); // 启动HTTP服务器 hv_run(loop); // 释放资源 hv_http_server_destroy(server); return 0; } ``` 3. 注册HTTP处理函数 接着需要注册HTTP处理函数,将处理HTTP请求的回调函数绑定到HTTP服务器对象上。可以使用hv_http_server_on_request函数来注册HTTP处理函数。例如: ```c++ int main() { // 创建HTTP服务器对象 hv_http_server_t* server = hv_http_server_create(); // 设置监听地址和端口号 hv_listen_on_port(server, 8080); // 注册HTTP处理函数 hv_http_server_on_request(server, on_http_request); // 启动HTTP服务器 hv_run(loop); // 释放资源 hv_http_server_destroy(server); return 0; } ``` 4. 处理HTTP请求 最后需要在HTTP处理函数中处理HTTP请求,并设置HTTP响应。HTTP请求和响应对象都提供了一些常用的属性和方法,可以根据需要进行设置。例如: ```c++ void on_http_request(const HttpRequest& req, HttpResponse& resp) { // 设置HTTP响应头 resp.add_header("Content-Type", "text/html; charset=UTF-8"); // 设置HTTP响应正文 resp.write("Hello, world!"); } ``` 在实际应用中,你需要根据具体的需求和场景,实现更加复杂的HTTP处理逻辑。同时还需要注意处理HTTP请求的线程安全性和异常处理等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值