Giotto
Giotto

Reputation: 29

Why I can't listen 127.0.0.1:port by socket

java.net.ConnectException: Connection refused (Connection refused)

no program using the port

Socket socket = new Socket("127.0.0.1", 9876);
java.net.ConnectException: Connection refused (Connection refused)
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at java.net.Socket.connect(Socket.java:538)
    at java.net.Socket.<init>(Socket.java:434)
    at java.net.Socket.<init>(Socket.java:211)

Upvotes: 1

Views: 1217

Answers (1)

i.bondarenko
i.bondarenko

Reputation: 3572

You create client socket. So some server should listen 9876 port otherwise you will get java.net.ConnectException: Connection refused (Connection refused). If you want to listen 9876 use:

Server:

ServerSocket serverSocket = new ServerSocket(9876);
Socket socket = server.accept(); // accept() waiting for client connection
//read from socket on server
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
System.out.println("Message from client " + in.readLine());   

After that you can create a client:

Cient:

Socket clientSocket = new Socket("localhost", 9876);
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream()));
out.write("Hello! " + "\n"); // send to server
out.flush();

Upvotes: 1

Related Questions