一个 Epoll FD 可以不同地处理两个 Epollin 事件吗?
Can an Epoll FD handle two Epollin events differently?
简介:
假设我们有一个服务器,运行一个单线程,通过epoll来管理evetns。我们还有两个客户端 A、B,它们通过套接字连接到服务器。
如果现在 A 或 B 正常向服务器发送消息,则会触发 epollin 事件并对其进行处理,例如使用方法 a()。
这意味着两个客户端的 epollin 事件都使用完全相同的方法 a().
进行处理
期望:
有没有一种方法可以将两个不同客户端触发的 epollin 事件用两种不同的方法进行处理?
例如。 A向服务器发送消息。 Epoll Fd 检测到 Epollin 事件。这是用方法 a() 处理的。 B 向服务器发送消息。 Epoll Fd 再次检测到 Epollin 事件。然而,这是用mehtode b()处理的。
epoll 本身不会将特定的回调与文件描述符相关联。 它只是 returns 通过 epoll_wait
事件发生在哪个文件描述符上以及哪个文件描述符上一种事件。如何处理此信息完全取决于应用程序,例如直接在调用 epoll_wait
的同一函数中处理它,为所有 Epollin 事件调用单个函数 a()
或调用不同的函数 a()
, b()
, .... 不同文件描述符上的 Epollin。
简介:
假设我们有一个服务器,运行一个单线程,通过epoll来管理evetns。我们还有两个客户端 A、B,它们通过套接字连接到服务器。 如果现在 A 或 B 正常向服务器发送消息,则会触发 epollin 事件并对其进行处理,例如使用方法 a()。 这意味着两个客户端的 epollin 事件都使用完全相同的方法 a().
进行处理期望:
有没有一种方法可以将两个不同客户端触发的 epollin 事件用两种不同的方法进行处理? 例如。 A向服务器发送消息。 Epoll Fd 检测到 Epollin 事件。这是用方法 a() 处理的。 B 向服务器发送消息。 Epoll Fd 再次检测到 Epollin 事件。然而,这是用mehtode b()处理的。
epoll 本身不会将特定的回调与文件描述符相关联。 它只是 returns 通过 epoll_wait
事件发生在哪个文件描述符上以及哪个文件描述符上一种事件。如何处理此信息完全取决于应用程序,例如直接在调用 epoll_wait
的同一函数中处理它,为所有 Epollin 事件调用单个函数 a()
或调用不同的函数 a()
, b()
, .... 不同文件描述符上的 Epollin。