我不明白请解释一下。
当我得到socket.Timeoit异常读取超时是如何在JAVA中的默认设置工作?在哪里管理它?我在60秒后超时。一些信息告诉这是由socket. setSoString();另一种资源,此参数在OS级别上管理。第一个问题。读超时的默认值是什么,我可以在哪里设置。第二,TCP/IP的OS(Linux)级设置与此无关?参数对此的React。https://www.baeldung.com/linux/tcp-timeout
https://www.ibm.com/docs/en/bcfsoz?topic=tcpip-timeout-behavior-linux-application-server
1条答案
按热度按时间pobjuy321#
我也不知道默认的套接字超时是多少,但根据JBoss docs,它是30分钟,即。180万毫秒这意味着任何套接字操作如果没有在30分钟内完成,都会抛出SocketTimeoutException。
是的,正如你提到的,你可以通过调用socket对象上的
setSoTimeout()
方法来根据你的要求来克服socket超时。例如:
另一件事是,系统/操作系统有自己的设置,影响它如何处理网络连接,这些设置与我们在Java中设置的超时是分开的。
参数tcp_fin_timeout会影响tcp超时异常的出现。