![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
server
文章平均质量分 57
Amrf
这个作者很懒,什么都没留下…
展开
-
epoll边沿模式---自言自语
首先创建epoll对象, 把要监控的文件描述符添加进去(要指明你要监控这个文件描述符的什么事件,文件描述符添加之前要设置为非阻塞的), 假设我们监控可读事件, 事件到达—说明缓冲区里有数据了,我们可以去读了, 首先我们读出前几个字节,这是我自己约定好的来确定包的总长度,当然也可以定长或者采用特殊结束字段什么的来判断。 用一个循环来读,知道返回值为和等于包长度或者-1(errno为EAGAI原创 2017-08-20 01:12:04 · 371 阅读 · 0 评论 -
如何使用epoll?一个完整的C用例
网络服务器传统上是使用每个连接单独的进程或线程实现的。对于需要同时处理大量客户端的高性能应用程序,这种方法将无法正常工作,因为诸如资源使用和上下文切换时间等因素会影响一次处理多个客户端的能力。一种替代方法是在单个线程中执行非阻塞I / O,以及一些准备通知方法,它可以告诉您何时可以在套接字上读取或写入更多数据。本文介绍了Linux的epoll(7)工具,它是Linux中最好的准备通知工具。我们将在C翻译 2017-08-13 20:36:42 · 917 阅读 · 0 评论 -
linux下用epoll实现的udp服务器例子,很精简和实用
#include <sys/socket.h>#include <sys/epoll.h>#include <netinet/in.h>#include <arpa/inet.h>#include <fcntl.h>#include <unistd.h>#include <stdio.h> #include <errno.h> #include <stdlib.h>#include转载 2017-08-13 20:39:07 · 4222 阅读 · 0 评论 -
select / poll / epoll:实际差异对比
当设计具有非阻塞套接字I / O的高性能网络应用程序时,架构师需要决定使用哪种轮询方法来监视这些套接字产生的事件。有几种这样的方法,每个方法的用例不同。选择正确的方法可能对满足应用需求至关重要。 本文重点介绍了轮询方法之间的区别,并提供了使用方法的建议。内容[ 隐藏 ] 1 Polling with select() 2 Polling with poll() 3 Polling with翻译 2017-08-13 20:46:11 · 448 阅读 · 0 评论 -
linux timerfd_create说明简单翻译
linux timerfd说明简单翻译 #include <sys/timerfd.h> int timerfd_create(int clockid, int flags); int timerfd_settime(int fd, int flags, const struct itimerspec *翻译 2017-09-08 01:09:50 · 2201 阅读 · 0 评论 -
epoll 单timefd vs epoll 多timefd
看到libev和libevent都是用的单timefd结合一个最小堆,也有些一些其他地方的例子用的多fd epoll原创 2017-09-08 15:19:48 · 526 阅读 · 0 评论