Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 查找主机时如何设置套接字超时?_Java_Sockets_Timeout - Fatal编程技术网

Java 查找主机时如何设置套接字超时?

Java 查找主机时如何设置套接字超时?,java,sockets,timeout,Java,Sockets,Timeout,在我的单元测试中,我使用commons httpclient请求不正确的远程网站,最大超时为: @Test(timeout = 10000) public void should_not_be_accessible_if_configuration_is_incorrect() throws Exception { // use httpclient to visit an invalid remote http web site } 但它可能会在某些计算机中引发这样的异常: jav

在我的单元测试中,我使用commons httpclient请求不正确的远程网站,最大超时为:

@Test(timeout = 10000)
public void should_not_be_accessible_if_configuration_is_incorrect() throws Exception {
     // use httpclient to visit an invalid remote http web site
}
但它可能会在某些计算机中引发这样的异常:

java.lang.Exception: test timed out after 10000 milliseconds
at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:894)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1286)
at java.net.InetAddress.getAllByName0(InetAddress.java:1239)
at java.net.InetAddress.getAllByName(InetAddress.java:1155)
at java.net.InetAddress.getAllByName(InetAddress.java:1091)
at org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:44)
at org.apache.http.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:102)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:314)
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:357)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:218)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:194)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:85)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:108)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:186)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:106)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57)
它似乎阻塞了方法:
java.net.Inet4AddressImpl.lookupAllHostAddr()


我想知道有没有办法设置它的最大超时时间?

您可以通过下面描述的超时属性来控制Java的DNS超时:


请看下面@sasankad No.的帖子。这些是连接和读取超时。这个问题是关于DNS超时的。与此问题相关的唯一答案是,它没有为此OP提供解决方案。这些JNDI DNS超时值是否对非JNDI DNS行为有任何影响,例如Java中标准URLConnection的行为?
com.example.jndi.dns.timeout.initial
com.example.jndi.dns.timeout.retries