将SO_LINGER与udp套接字一起使用是否有效?

时间:2015-10-06 20:40:38

标签: sockets networking udp gnuradio

将SO_LINGER与udp套接字一起使用是否有效?

如果是,请您描述一下SOLINGER适用于udp套接字的情况或说明示例吗?

一点背景:

我从未使用过SO_LINGER选项,因此我不熟悉它的用途或何时使用(特别是使用udp套接字)。

此问题的更具体背景:

我问,因为我遇到了一些open source code that was implementing a udp socket and using the SO_LINGER socket option(从我查看代码的30秒看起来它看起来像一个非常标准的udp套接字接收,然后通过gnuradio将数据推送给某种消费者' s API)。

从我在人工页面和网页上对SO_LINGER所做的简短阅读中,所有页面都讨论过SO_LINGER与面向连接的协议(即tcp等)一起使用......但是这段代码正在进行非连接面向协议,udp在这种特定情况下,所以我很困惑为什么SO_LINGER与udp套接字一起使用。

1 个答案:

答案 0 :(得分:3)

当使用正读取超时时,它会导致close()阻塞达到该超时,而套接字发送缓冲区中仍有未发送的数据,并且写入该数据的任何困难都将作为错误返回close()方法。这同样适用于UDP和TCP。它很少使用。

SO_LINGER的其他用途,零超时,仅适用于TCP。