在您的帮助和阅读其他资源之后,我已经能够成功使用 epoll,我现在面临的问题是我需要发送到与 EPOLLOUT 事件返回不同的 FD,所以如果我有 5 个 FD,那么我需要发送到 1,然后发送到 4,然后返回到 1,然后发送到 5,依此类推。
以下伪代码是我现在拥有的 IN 和 OUT 事件,
while(1) {
rval = epoll_wait();
for (i = 0; i < rval; i++) {
if (events & EPOLLOUT) {
//send to the ready FD for sending
}
if (events & EPOLLIN) {
//Receive from ready fd, this part is perfect for my application
}
}
}
我需要做的是如下
char buff[100];
fd = read_data(buff); // read data ready to send, the return value is the FD the application should send the returned data to
send(fd, buff, 100, 0);
然后我需要 EPOLLIN 从任何 FD 接收数据,因为我将一直从所有 fd 接收数据,我不知道该怎么做,你能帮忙吗?