linux - 使用 epoll 的客户端连接

标签 linux network-programming sockets epoll

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

抱歉我的英语不好...

最佳答案

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

关于linux - 使用 epoll 的客户端连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2805500/

相关文章:

c - 如何从 C 中的 Linux 终端中删除一个字符

linux - 如何在 linux 中访问 hadoop web UI?

java - 使用 Mqtt 订阅者与主类通信

Java Socket I/O 流空指针异常

linux - bash 文件的符号链接(symbolic link)

c - tcp时间戳,记录返回回复所需的时间

java - 尝试连接到 Symantec NetBackup 时 JSch 中出现 "Algorithm negotiation fail"错误 - 远程抓取报告

python - 在Python中发送CTS帧

c - Recv 返回比消息长度多的字节

java - 操作系统是否为 UDP 缓冲数据包