由于最近遇到一个关于局域网通信的项目,主要是4个client端传送数据至1个server端,每个client端的PC均由网线连接一个网络转串口服务器,每个服务器分配1个ip,每个ip最多虚拟8个串口端,这些串口端获取的数据将作为数据源被处理,最终通过网络传输至server端。于是乎,我对socket进行封装处理,所有关于socket的初始化,组包和收发包均通过这里进行,thread也是单独封装了,在server端一个进程共由5个线程组成,主线程作ui相关处理,其他4个线程分别对不同的client端进行通信处理。虽然,整个小小的架构做了两三次优化调整,但是总觉得哪里有所欠缺。于是,好奇心害死人,libevent登场了。
我对libevent也只是刚刚接触,很多东西正在慢慢研究整理中,有些自我认知可能是有问题的,如有发现,还望指正。这几天从libevent里sample中最简单的定时器事件开始接触。
#include <sys/types.h>
#include <event2/event-config.h>
#include <sys/stat.h>
#ifndef _WIN32
#include <sys/queue.h>
#include <unistd.h>
#endif
#include <time.h>
#ifdef EVENT__HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#in