如果监听套接字是非阻塞套接字,accept返回非阻塞套接字吗?

时间:2019-08-22 23:57:10

标签: sockets networking network-programming

在任何平台上, accept()函数返回的套接字选项是否取决于侦听套接字的选项?

例如, 我想知道侦听套接字是否处于非阻塞模式,accept()是否返回非阻塞套接字?

1 个答案:

答案 0 :(得分:1)

我不会说不存在任何平台,其中返回的TCP套接字的阻止模式随accept-socket的阻止模式而变化,因为我没有使用所有平台;但是我要说的是,我从未在我开发的任何平台(MacOS / X,Windows,Linux,BSD等)上看到这种行为。由accept()返回的套接字始终具有新TCP套接字的默认设置,其中包括该套接字处于阻塞模式。就是说,accept man页面似乎并未以一种或其他方式明确地解决该问题。

无论如何,如果您担心它,安全的做法是在accept()返回的套接字上手动设置(或取消设置)阻塞模式,以便可以保证它处于状态你想要的。