作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在 Java 中,使用 Socket.setSoLinger(true, 0) 设置套接字与根本不调用 setSoLinger 之间有区别吗?套接字的关闭方式有区别吗?
我查看了 Java 源代码,没有发现关于 soLinger 的套接字关闭有什么特别之处。这让我相信这是操作系统特定的行为。就我而言,我在 Linux 上工作。
最佳答案
当通过 setSoLinger()
指定超时时,close()
会阻塞,直到关闭握手完成,或者直到指定的时间过去。
但是,close()
没有提供关闭握手未能完成的指示,即使如果 setSoLinger()
设置的时间限制在关闭序列完成之前到期。
在其他换言之,setSoLinger()
不对当前的应用程序提供任何额外的保证实现。
Here's信息来源。
关于java - 使用 0 值调用 setSoLinger 与根本不启用 soLinger 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9658455/
据我了解,linger 是一种设置,允许在关闭后保持连接一些延迟,以便有时间读取最终数据。 我有这个例子: @Ignore public class SocketTTest { @Test
在 Java 中,使用 Socket.setSoLinger(true, 0) 设置套接字与根本不调用 setSoLinger 之间有区别吗?套接字的关闭方式有区别吗? 我查看了 Java 源代码,没
我是一名优秀的程序员,十分优秀!