尽管 SOCK_NONBLOCK 已设置,但 accept4 块
accept4 blocks though SOCK_NONBLOCK is set
我正在尝试非阻塞地接受套接字:
accept4(s, (struct sockaddr *) &peerAddress, &len,SOCK_NONBLOCK);
其中 s 是一个 fd,peerAddres 是一个地址,len 是它的长度。
我希望 accept 不会阻塞线程。
虽然,一旦我调试,该过程就停留在这一行,而没有连接挂起。
我的错误是什么?
SOCK_NONBLOCK
只是将新接受的套接字设置为非阻塞。它不会使 accept
本身成为非阻塞的。为此,需要在调用 accept 之前将监听套接字设置为非阻塞。
我正在尝试非阻塞地接受套接字:
accept4(s, (struct sockaddr *) &peerAddress, &len,SOCK_NONBLOCK);
其中 s 是一个 fd,peerAddres 是一个地址,len 是它的长度。 我希望 accept 不会阻塞线程。 虽然,一旦我调试,该过程就停留在这一行,而没有连接挂起。 我的错误是什么?
SOCK_NONBLOCK
只是将新接受的套接字设置为非阻塞。它不会使 accept
本身成为非阻塞的。为此,需要在调用 accept 之前将监听套接字设置为非阻塞。