如何使用libevent写一个简单的服务器
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要为大家展示了"如何使用libevent写一个简单的服务器",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何使用libevent写一个简单的服务
千家信息网最后更新 2026年11月02日如何使用libevent写一个简单的服务器
这篇文章主要为大家展示了"如何使用libevent写一个简单的服务器",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何使用libevent写一个简单的服务器"这篇文章吧。
示例代码
#include#include #include #include #include #include #include #include #include void sock_read(int fd, short event, void *arg){ char buf[255]; int len; struct event *ev = arg; len = recv(fd, buf, sizeof(buf)-1, 0); if (len == -1) { perror("recv error/n"); if (errno != EAGAIN && errno != EINTR) { close(fd); free(ev); } return; } else if (len == 0) { close(fd); fprintf(stderr, "Connection closed/n"); free(ev); return; } buf[len] = '/0'; fprintf(stdout, "Read: %s/n", buf); /* Reschedule this event */ event_add(ev, NULL);}void sock_accept(int fd, short event, void *arg){ struct event *ev = arg; struct sockaddr addr; socklen_t len = sizeof(addr); //由于此结构要长期使用,所以rev必须动态分配,否则离开此函数后会自动释放,导致segment fault struct event* rev = (struct event*)malloc(sizeof(*rev)); int s = accept(fd, &addr, &len); if (s == -1) { perror("accept error/n"); return; } fprintf(stdout, "accept socket: %d/n", s); /* Initalize one event */ event_set(rev, s, EV_READ, sock_read, rev); /* Add it to the active events, without a timeout */ event_add(rev, NULL); /* Reschedule this event */ event_add(ev, NULL);}intmain (int argc, char **argv){ struct event ev; int fd; struct sockaddr_in addr; fd = socket(AF_INET, SOCK_STREAM, 0); if (fd == -1) { perror("socket error/n"); exit(-1); } bzero(&addr, sizeof(addr)); addr.sin_family = AF_INET; addr.sin_port = htons(10000); addr.sin_addr.s_addr = 0; if (bind(fd, (struct sockaddr*)&addr, sizeof(addr)) == -1) { perror("bind error/n"); exit(-1); } if (listen(fd, 5) == -1) { perror("listen error/n"); exit(-1); } /* Initalize the event library */ event_init(); /* Initalize one event */ event_set(&ev, fd, EV_READ, sock_accept, &ev); /* Add it to the active events, without a timeout */ event_add(&ev, NULL); event_dispatch(); return (0);}
以上是"如何使用libevent写一个简单的服务器"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
服务器
服务
内容
篇文章
学习
帮助
代码
函数
动态
易懂
更多
条理
知识
示例
结构
编带
行业
资讯
资讯频道
频道
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技垄断
深圳互联网络科技有限公司
上海挚品互联网科技
北京互联网络科技有限公司
互联网科技视频素材
上海电发互联网科技有限公司
恒银科技与互联网金融
受益于互联网科技的高速发展
厦门千工互联网科技有限公司
深圳育鹏互联网科技有限公司招聘
亳州好赞互联网科技有限公司
科技互联网的核心竞争力
互联网安防科技感
普陀区互联网教育科技管理办法
互联网科技手机排行榜
中国新注册互联网科技
互联网科技和医药行业
盐城市攀科互联网科技有限公司
亚光科技低轨卫星互联网
利用互联网等科技手段
中关村互联网科技集团
丰台科技园 互联网
互联网科技小额贷款
互联网科技宣传片
互联网科技产业特征
链环科技传统企业怎么转型互联网
西安小鹰速贷互联网科技有限公司
现代互联网科技公司
保山浩联互联网科技有限公司
互联网科技大佬云集