- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
是否可以手动发送EPOLLIN
事件到epoll
获取套接字文件描述符而不向套接字写入数据?
也许可以使用fcntl
或ioctl
来停止epoll_wait
函数,不是吗?
更新:
我知道在大多数情况下这样做没有意义,但我认为这对我来说确实有意义。
我正在为我无法修改的程序编写网络插件。插件 API 给了我一个套接字 FD 并告诉我编写一个函数来从套接字中读取 n
字节。为此,我使用了 polarssl
库中的 ssl_read
函数,它将所有数据读入它自己的内部缓冲区,即超过 n
字节。
程序中发生了什么?当套接字接收到数据时,程序等待(epoll_wait
),然后告诉插件读取大约 4kB 的数据。然后等待套接字接收下一个数据。当socket接收到12kB数据时,程序调用插件内的read
函数,用ssl_read
函数读取所有数据。结果,没有更多数据可用于套接字,但 polarssl
库有它自己的缓冲区,其中有大约 8kB 的可用数据。
所以现在我需要告诉程序调用插件的read
函数,它不是直接从socket中读取数据,而是从内部中读取数据polarssl
缓冲区。
最佳答案
关于c - 发送 EPOLLIN 事件到 epoll_wait,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25161929/
在我接受设置为监听 EPOLLIN 事件的连接套接字后使用 epoll,并且我收到一个 EPOLLIN 事件,我是否必须读取所有数据( until 0) 在我epoll_ctl之前只EPOLLOUT?
在您的帮助和阅读其他资源后,我已经能够成功使用 epoll,我现在面临的问题是我需要发送到与 EPOLLOUT 事件返回不同的 FD,所以如果我有 5 个 FD,那么我需要发送到 1,然后发送到 4,
是否可以手动发送EPOLLIN事件到epoll获取套接字文件描述符而不向套接字写入数据? 也许可以使用fcntl 或ioctl 来停止epoll_wait 函数,不是吗? 更新: 我知道在大多数情况下
关于事件是否合并的文档并不清楚,我的测试表明它们在某些情况下存在,但并非总是如此。 考虑 man 7 epoll: Since even with edge-triggered epoll, mult
epoll 联机帮助页说如果没有完成读取,用 EPOLLET(edge triggered) 注册的 fd 不应该通知两次 EPOLLIN。 因此,在 EPOLLIN 之后,您需要在 epoll_wa
假设我在使用 epoll_wait 添加要监视的描述符时指定了 EPOLLIN 和 EPOLLOUT 标志。从“epoll”联机帮助页中不清楚作为数组的一部分返回的每个 epoll_event 结构在
我正在使用 C 中的 epoll 实现一个 HTTP 服务器。服务器解析请求并做出相应的响应。 当我发出简单的 curl 请求时一切正常(即没有并发)。 然而,当使用并发客户端并发出多个请求时,即使
在通过 epoll 从客户端应用程序的答案中接收数据时遇到问题。 我做了一个简单的插图代码。省略了最大错误处理逻辑。 简短的上下文描述: 客户端应用程序创建 2 个非阻塞套接字(SOCK_NON_BL
假设我是 epoll_create1() 并且只对 EPOLLIN 感兴趣 | EPOLLET 用于 1 个 socket 。 我是否有可能为该套接字获得 epoll_wait() > 1(假设超时=
我使用带有 TFD_NONBLOCK 选项的 timerfd。 这个计时器被添加到只有 EPOLLIN 事件集的 epoll Controller 。如果 EPOLLIN 发生,则在此计时器上使用 r
摘自epoll_ctl的手册: EPOLLRDHUP (since Linux 2.6.17) Stream socket peer closed connection, or shut down w
我是一名优秀的程序员,十分优秀!