在Java中,使用Socket.setSoLinger(true,0)设置套接字与根本不调用setSoLinger有区别吗? socket 的关闭方式是否有所不同?
我已经浏览了Java的源代码,并且没有发现关于soLinger的套接字关闭有什么特别的地方。这使我相信这是特定于操作系统的行为。就我而言,我正在Linux上工作。
最佳答案
通过setSoLinger()
指定超时时,close()
会阻塞直到完成握手结束或经过指定的时间为止。
但是,close()
不能提供关闭握手未能完成的指示,即使
如果setSoLinger()
设置的时间限制在关闭序列完成之前到期。
其他
言之,setSoLinger()
当前不为应用程序提供任何其他保证。
实现。
Here's信息源。
关于java - 用0值调用setSoLinger与根本不启用soLinger有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9658455/