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

标签 java sockets

我遇到了一个问题,我的应用程序中涉及 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

关于java - 我可以设置默认的全局 Java 套接字超时吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37890552/

相关文章:

Java - 是否可以将客户端发送到另一台服务器?

java - org.hibernate.Session 和 org.hibernate.classic.Session 之间的区别

java - 在 Jersey 中,我可以将 QueryParams 和 FormParams 组合成一个方法的值吗?

java - 从多个 wsdls 获取 java 类

Java 将 BufferedReader、DataOutputStream 和 Sockets 传递给可运行线程类会导致写入流时出现套接字异常

c# - 使用GPRS的WM6 socket

python - 如何在 python 程序中关闭 Ctrl-C 上的套接字连接

java - AsyncTask 创建一个 Socket

java - 如何使用类 <?扩展 Something>?

java - Bouncy CaSTLe - 如何使用 Bouncy CaSTLe 实现 SignedAndEnveloped 数据