在 Linux 内核模块中,我希望对侦听套接字的接受处理程序的调用不在内核线程中等待。所以我需要要么传递O_NONBLOCK
给接受处理程序。但我想在连接的套接字上使用超时,而不是非阻塞套接字。
我知道将内核中的套接字配置为非阻塞的两种机制。将 O_NONBLOCK 传递给sock->op
( struct socket * sock
) 中的接受或连接处理程序。之后我不知道如何重置 O_NONBLOCK 标志。否则如何更改套接字上的 O_NONBLOCK 标志?
是否有替代方法,例如接受超时?这将允许侦听端口上的连接套接字阻塞。