libevent
顾文繁
功不捐唐终入海
展开
-
C++线程池
使用libevent封装的c++内嵌线程池,在主线程负责调度,在开启的线程中负责处理接受到的任务。在主线程使用管道发送信号给开启的线程,在开启的线程中使用libevent监听主线程发送来的信号,接收成功以后,从线程中维护的任务队列取出,开始处理任务。下面是线程池的UML类图主函数://// Created by wenfan on 2021/5/4.//#include <iostream>#include <event2/event.h>#include.原创 2021-05-07 09:39:03 · 275 阅读 · 0 评论 -
数据压缩通讯实现
在传输文件或者其他的网络数据时,I/O经常是高并发的瓶颈,如果一台服务器的带宽只有1M,那么每秒理论上的最大传输速率只有128kb/s,这将极大的限制了并发数量,此时,只能在I/O上进行压缩,将大块数据经过压缩算法转换为某种二进制,然后进行传输,再到服务端通过解压算法进行解压缩,进行业务逻辑处理。原创 2021-04-12 09:18:58 · 236 阅读 · 0 评论 -
libevent服务端客户端
libevent编写服务端的步骤生成上下文 event_base* base = event_base_new(); 绑定服务端的地址 sockaddr_in sin;memset(&sin, 0, sizeof(sin));sin.sin_family = AF_INET;sin.sin_port = htons(PORT); 使用libevent提供的监听器listener evconnlistener* ev = evconnlistener_new_bi.原创 2021-04-06 18:29:15 · 338 阅读 · 0 评论 -
libevent定时器
使用evtimer_new申请一个定时器,并指定定时器回调函数。#include <iostream>#include <event2/event.h>#include <signal.h>using namespace std;static timeval t1 = {1, 0};void timer1(int sockfd, short what, void* arg){ cout << "[timer1]" << fl原创 2021-04-01 18:08:50 · 597 阅读 · 1 评论 -
libevent处理信号
使用evsignal_new 注册一个no-pending的事件,并指定回调函数具体例子#include <iostream>#include <event2/event.h>#include <signal.h>using namespace std;static void Ctrl_C(int sockfd, short what, void* arg){ cout << "Ctrl_C" << endl;}sta原创 2021-04-01 18:04:22 · 473 阅读 · 0 评论