我正在尝试学习如何将 epoll() 用于 tcp 服务器应用程序,因为我期望有很多连接。
我尝试检查示例和教程,他们总是建议使用/设置在 epoll() 中添加的套接字为非阻塞套接字。为什么?
对于级别触发的 epoll,非阻塞套接字可以帮助最大限度地减少 epoll_wait() 调用,这是一个优化问题。
对于边缘触发的 epoll,您必须使用非阻塞套接字并调用 read() 或 write() 直到它们返回 EWOULDBLOCK。如果不这样做,您可能会错过内核通知。
您可以在这里找到详细的答案:https://eklitzke.org/blocking-io-nonblocking-io-and-epoll https://eklitzke.org/blocking-io-nonblocking-io-and-epoll
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)