我可以设置默认的全局 Java 套接字超时吗?

2024-05-02

我遇到了一个问题,应用程序中涉及 http 和 ftp 连接的各个位置在 java.net.SocketInputStream.socketRead0 上无限期地挂起(在终止 java 进程之前一次观察几个小时)。

我想全局覆盖默认的套接字超时 0,这样我就不必在启动连接的每个位置都设置它。我可以调用一些全局 Java 属性或方法来将默认套接字超时设置为 0 以外的值吗?


这取决于您的应用程序如何创建套接字。如果您的应用程序代码使用 URLConnection,那么您可以使用 JVM 属性设置默认超时:

-Dsun.net.client.defaultReadTimeout=30000
-Dsun.net.client.defaultConnectTimeout=5000

此属性是特定于实现的,但仍然适用于最新的 Oracle/OpenJDK。

https://docs.oracle.com/javase/8/docs/technotes/guides/net/properties.html https://docs.oracle.com/javase/8/docs/technotes/guides/net/properties.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以设置默认的全局 Java 套接字超时吗? 的相关文章

随机推荐