客户端与 epoll 的连接

发布于 2024-08-31 23:50:40 字数 251 浏览 7 评论 0原文

我正在使用 epoll 和 pthreads 在 C++ 中为 linux 编写一个应用程序(客户端/服务器),但我不知道如何处理 connect() 调用以在描述符列表中附加新连接,如果带有 epoll_wait() 的循环正在运行(边缘触发),我该怎么做?...我可以使用虚拟文件描述符来触发事件和等待场景?简单地调用 connect() 就可以触发该事件??...

抱歉我的英语不好...

I'm programming an application(client/server) in C++ for linux using epoll y pthreads but I don't know how to handle the connect() calls for attach a new connection in the descriptor list if a loop with epoll_wait() is running(Edge-triggered), How to can I do it?... I could to use a dummy file descriptor to trigger an event and scape of wait?, or a simple call to connect() could fire the event??...

Sorry for my bad english...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

猫九 2024-09-07 23:50:40

是的,您可以使用另一个文件描述符来唤醒 epoll_wait() 循环。使用pipe()创建文件描述符。将管道的读取端添加到您的epoll列表中,并在您想要唤醒它时向写入端写入一个字节。读取端可以只读取该字节并将其丢弃。

Yes, you can use another file descriptor that's just for waking up your epoll_wait() loop. Use pipe() to create the file descriptor. Add the reading end of the pipe to your epoll list, and write a single byte to the writing end when you want to wake it up. The reading side can just read that byte and discard it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文