Ho un server, al quale si connette una macchina client. Recentemente ho deciso di criptare la connessione con stunnel, quindi ora il programma client si connette non direttamente al server, ma a localhost: 8045 (ho controllato, e questa porta non è occupata).Perché la connessione a localhost viene rifiutata?
codice Java:
URL url = new URL("http://localhost:8045/malibu/GetProviders");
InputStream stream = url.openStream();
e ottengo il seguente:
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)
. . .
Se provo a chiedere la stessa pagina utilizzando curl
, è tutto a posto.
Cosa può causare un simile comportamento?
EDIT: sì, c'è un socket in ascolto - in esecuzione netstat -avn | grep 8045
dà:
tcp6 0 0 ::1:8045 :::* LISTEN
Hai provato https: // nell'URL() –
@Dave: (1) Non è così che funziona stunnel. (2) L'errore è chiaramente un rifiuto della connessione a livello TCP, non un errore di negoziazione a livello di applicazione. – cdhowie
Prova a utilizzare il tuo indirizzo IP in URL. – nIKUNJ