【发布时间】:2011-11-05 08:58:26
【问题描述】:
我有一台服务器,客户端机器连接到该服务器。最近决定用stunnel加密连接,所以现在客户端程序不直接连接到服务器,而是连接到localhost:8045(我查了,这个端口没有被占用)。
Java 代码:
URL url = new URL("http://localhost:8045/malibu/GetProviders");
InputStream stream = url.openStream();
我得到以下信息:
java.net.ConnectException: Connection refused: connect
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:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:180)
. . .
如果我尝试使用curl 请求同一页面,一切都很好。
什么会导致这种行为?
编辑:是的,有一个监听套接字 - 运行 netstat -avn | grep 8045 给出:
tcp6 0 0 ::1:8045 :::* LISTEN
【问题讨论】:
-
你有没有在 URL() 中尝试过 https://
-
@Dave:(1) stunnel 不是这样工作的。 (2) 错误明显是TCP级别的连接拒绝,而不是应用级别的协商错误。
-
你能验证一下是否有一个监听套接字绑定到端口 8045?
-
@nIKUNJ - 结果相同 :(
-
@cdhowie - 是的。在帖子中添加了 netstat 输出。
标签: java url networking localhost stunnel