linux Java套接字超时读取超时异常

8yparm6h  于 2023-10-16  发布在  Linux
关注(0)|答案(1)|浏览(145)

我不明白请解释一下。
当我得到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

pobjuy32

pobjuy321#

我也不知道默认的套接字超时是多少,但根据JBoss docs,它是30分钟,即。180万毫秒这意味着任何套接字操作如果没有在30分钟内完成,都会抛出SocketTimeoutException
是的,正如你提到的,你可以通过调用socket对象上的setSoTimeout()方法来根据你的要求来克服socket超时。
例如:

Socket socket = new Socket(host, port);
socket.setSoTimeout(10000);

另一件事是,系统/操作系统有自己的设置,影响它如何处理网络连接,这些设置与我们在Java中设置的超时是分开的。
参数tcp_fin_timeout会影响tcp超时异常的出现。

相关问题