Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这是否会影响accept()?_C_Sockets_Posix - Fatal编程技术网

这是否会影响accept()?

这是否会影响accept()?,c,sockets,posix,C,Sockets,Posix,SO\u RCVTIMEO选项是否影响accept(导致其返回EAGAIN或ewooldblock(如果超时过期)?标准是否规定了任何行为?我在accept或使用选项的文档中找不到它: 在POSIX上,所以RCVTIMEO是为“输入函数”定义的,而SNDTIMEO是为“输出函数”定义的,我找不到“输入函数”或“输出函数”的任何定义,所以我只能说它们至少是读/接收和写/发送的 在Linux的特定情况下,SO_RCVTIMEO会影响accept(),这可以通过查看看到,SO_SND_TIMEO会影响

SO\u RCVTIMEO
选项是否影响
accept
(导致其返回
EAGAIN
ewooldblock
(如果超时过期)?标准是否规定了任何行为?我在
accept
或使用选项的文档中找不到它:


在POSIX上,所以RCVTIMEO是为“输入函数”定义的,而SNDTIMEO是为“输出函数”定义的,我找不到“输入函数”或“输出函数”的任何定义,所以我只能说它们至少是读/接收和写/发送的


在Linux的特定情况下,SO_RCVTIMEO会影响
accept()
,这可以通过查看看到,SO_SND_TIMEO会影响
connect()
,这可以通过查看看到。

我似乎记得答案是否定的,但我不记得上下文是肯定的还是我读过的东西。史蒂文斯只提到read、readv、recv、recvfrom和recvmsg受到影响。如果accept受该选项的影响,它似乎会被记录在某个地方,因为在某些情况下,它将是一个有用的选项。此外,在3路连接完成之前,连接不会进入挂起队列,这难道不是一种情况吗?这将否定这一点,因为您是否将返回一个新套接字。我正在考虑一个阻塞套接字,当没有连接尝试时,
accept
花费的时间被阻塞。我知道,但我在想接收超时对accept意味着什么。在应用程序级别没有任何可接收的内容,当SYN/ACK之间可能存在显著延迟时,SYN/ACK的接收是否真的意味着什么?基于此的计时器似乎不起作用,这就是为什么我认为在这种情况下,sou RCVTIMEO不合适的原因。其他一些计时器机制是合适的,即基于队列中没有任何东西/某些东西的语义,而不是读缓冲区。+1并被接受,因为除了其他实现的实现细节之外,似乎没有什么要说的了。