You don't have anything running on your localhost at port 8080 for the socket to connect to. You can run a server such as Tomcat on that port, and then things should work.
Here is a standalone example that sets up a server socket to run locally (all it does is echo input from the client). Output will be "hello, jewelsea".
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class ConnectToServer {
public static void main(String[] args) throws IOException, InterruptedException {
// server code.
ServerSocket serverSocket = new ServerSocket(8082);
Thread serverThread = new Thread(() -> {
while(true) {
try {
Socket connection = serverSocket.accept();
try (
BufferedReader serverReader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
Writer serverWriter = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream()));
) {
serverWriter.write("hello, " + serverReader.readLine() + "\n");
serverWriter.flush();
}
} catch (IOException e) {
e.printStackTrace();
} catch (Throwable t) {
t.printStackTrace();
throw t;
}
}
});
serverThread.setDaemon(true);
serverThread.start();
// client code.
Socket clientSocket = new Socket("127.0.0.1", 8082);
try (
Writer clientWriter = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream()));
BufferedReader clientReader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
) {
clientWriter.write("jewelsea\n");
clientWriter.flush();
String response = clientReader.readLine();
System.out.println(response);
}
}
}
You might not want to work directly with sockets, but rather with higher level APIs, such as jax-rs.