- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
尝试在 Linux (RHEL) 上打开多个输入流(在单独的线程中)时,我遇到了一个奇怪的问题。该行为在 Windows 上按预期工作。
我正在启动 3 个线程以打开到 3 个不同服务器的 https 连接。这三个都是无效的 IP 地址(在此测试用例中),因此我希望它们中的每一个都出现 NoRouteToHostException。前两个按预期返回这些,而且很快。 (请参阅下面的堆栈跟踪)但是第三个(当我以这种方式测试时是第四个)没有给出无路由异常。他们等待很长时间,然后给出 SocketTimeoutException(请参阅下面的其他堆栈跟踪)。这需要很长时间才能返回,并且不能准确表达连接问题。
有问题的代码行是:
reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
有没有人见过这样的东西? REHL 上的套接字是否存在多线程问题,或者在某个地方限制了一次可以连接的数量……或者……什么的?
预期的堆栈跟踪,如前两个收到的那样:
java.net.NoRouteToHostException: No route to host at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:529) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:559) at sun.net.NetworkClient.doConnect(NetworkClient.java:158) at sun.net.www.http.HttpClient.openServer(HttpClient.java:394) at sun.net.www.http.HttpClient.openServer(HttpClient.java:529) at sun.net.www.protocol.https.HttpsClient.(HttpsClient.java:272) at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:329) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:172) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:916) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:158) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1177) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:234)
3 日收到的意外堆栈跟踪:
java.net.SocketTimeoutException: connect timed out at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:529) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:559) at sun.net.NetworkClient.doConnect(NetworkClient.java:158) at sun.net.www.http.HttpClient.openServer(HttpClient.java:394) at sun.net.www.http.HttpClient.openServer(HttpClient.java:529) at sun.net.www.protocol.https.HttpsClient.(HttpsClient.java:272) at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:329) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:172) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:916) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:158) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1177) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:234)
最佳答案
Linux 防火墙是否阻止了连接?如果 iptables -L
的输出已填充,其中可能包含您的答案。您也可以使用 telnet localhost <portnumber>
进行测试检查端口是否可用。如果是,telnet 应该显示“已连接”等。
关于Java getInputStream SocketTimeoutException 而不是 NoRouteToHostException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4617965/
我在elasticsearch.yml中具有以下配置- 服务器1:- cluster.name: rhel node.name: "node-1" network.host: 172.23.83.12
我得到了 Caused by: java.net.NoRouteToHostException: No route to host at java.net.PlainSocketImpl.socket
我正在开发一个涉及服务器和客户端的程序,我尝试监听一个端口,然后从客户端向该端口发送消息。但是,这样做时我得到了 NoRouteToHostException。我制作了一个简单的客户端和服务器应用程序
披露:我正在编写的代码用于大学类(class)。 背景:我要完成的任务是报告不同线程技术的效果。为此,我编写了几个类,它们使用 Java 套接字响应来自客户端的请求。这个想法是用请求淹没服务器并报告不
我正在从远程位置获取 XML 文档。该文档以字符串形式返回。之后,我尝试使用 java xml 解析器解析该字符串。然而,有时解析会因 java.net.NoRouteToHostException
我想配置我的 webstart app/jnlp,这样如果没有互联网连接可用,它将从缓存中启动。 然而,当我断开与 Internet 的连接时,我总是会收到 NoRouteToHostExceptio
尝试在 Linux (RHEL) 上打开多个输入流(在单独的线程中)时,我遇到了一个奇怪的问题。该行为在 Windows 上按预期工作。 我正在启动 3 个线程以打开到 3 个不同服务器的 https
我在 Centos 5.6 服务器上对 JBoss 6 进行远程 JMX 调用时遇到问题。我以前在 Debian 服务器上运行相同的应用程序时能够做到这一点。 ./twiddle.sh --serve
[2015-10-11 13:08:26,587][WARN ][transport.netty ] [Joseph] exception caught on transport l
我在使用此组合时遇到问题:我想将发送和接收数据报 channel 绑定(bind)到系统选择的端口和 IP(不是 环回和不是 localhost )。在下面的示例中,当我使用“旧 I/O”又名 Dat
我正在开发一个 Springboot 应用程序,它接收请求并对请求参数进行一些修改并将其发送到另一个 springboot 应用程序。这两个应用程序都位于同一台 Linux Redhat 机器上。 我
我在CentOS7.0上安装了hadoop 2.5.1 我正在使用 3 台具有以下主机文件的计算机,与所有 3 台计算机相同 我没有使用 DNS。 XXX.XXX.XXX.65 mccb-com65
提前为此处的数据转储道歉。我有两台安装了 Zookeeper 的服务器。我想将它们作为一个整体运行。这是我的 zoo.cfg 中的内容。 tickTime=2000 initLimit=10 sync
当尝试在Android中使用resttemplate消耗restservice时,出现上述异常。以下是一段代码。 private class HttpRequestTask extends Asyn
我有一个类,如果存在连接,则从 URL 返回数据字符串,如果没有连接,则返回 null。 我的问题是我正在检查: if (str == null) { System.out.println("E
最近几天,我的 Docker 容器 (SonarQube) 在启动后几秒钟就崩溃了。似乎无法再连接数据库容器了。我怎样才能将它们重新连接在一起? MySQL容器运行命令: docker run -d
我创建了一个带有 HelloController 的简单 Spring 启动应用程序。 Get API: http://localhost:8080/hello Response: Hello Wor
我正尝试在 openshift 上从 eclipse 部署我的 Jersey 项目,但尾文件中出现此错误 Caused by: java.net.NoRouteToHostException: No
我正在运行 stress test在 Amazon EC2 中的 Openfire 上,在连接 28.000 次后,我的压力测试重置并且出现此错误。 这是什么? 最佳答案 据我了解,您的机器用完了可用
就是这样。我以前从未见过。我正在尝试 Tcp 打洞。 一个客户端应该既是客户端又是服务器(对于其他客户端)。 我遇到了这个异常。有没有人知道这个问题? java.net.NoRouteToHostEx
我是一名优秀的程序员,十分优秀!