I have a Java Spring Boot application that at the service level creates a Socket connection to localhost and accesses another application written in C++.
When I run a Java application on a remote host and call this line, an error occurs:
Socket socket = new Socket("localhost", port);
java.net.ConnectException: Connection refused: connect
at java.base/sun.nio.ch.Net.connect0(Native Method)
at java.base/sun.nio.ch.Net.connect(Net.java:579)
at java.base/sun.nio.ch.Net.connect(Net.java:568)
at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:593)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
at java.base/java.net.Socket.connect(Socket.java:633)
at java.base/java.net.Socket.connect(Socket.java:583)
at java.base/java.net.Socket.(Socket.java:507)
at java.base/java.net.Socket.(Socket.java:287)
But at the same time, if I change the host to external IP, everything works fine.
Socket socket = new Socket("IP-Address", port);
The port that the C++ application uses has “Inbound” and “Outbound” Rules for TCP/UDP requests and it’s open.
Any ideas what is wrong here?