I am getting a java.net.SocketException: Connection reset

135 Views Asked by At

So I want to learn about Sockets in Java, therefore I followed this "tutorial". Although I copied the code from the tutorial I am getting an Exception.

Exception in thread "main" java.net.SocketException: Connection reset
    at java.base/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:318)
    at java.base/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:346)
    at java.base/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:796)
    at java.base/java.net.Socket$SocketInputStream.read(Socket.java:1099)
    at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:329)
    at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:372)
    at java.base/sun.nio.cs.StreamDecoder.lockedRead(StreamDecoder.java:215)
    at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:169)
    at java.base/java.io.InputStreamReader.read(InputStreamReader.java:188)
    at java.base/java.io.BufferedReader.fill(BufferedReader.java:160)
    at java.base/java.io.BufferedReader.implReadLine(BufferedReader.java:370)
    at java.base/java.io.BufferedReader.readLine(BufferedReader.java:347)
    at java.base/java.io.BufferedReader.readLine(BufferedReader.java:436)
    at Server.main(Server.java:17)

This is my Client code:

import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;

public class Client {
    public static void main(String[] args) throws IOException {
        Socket s = new Socket("localhost", 4999);

        PrintWriter pr = new PrintWriter(s.getOutputStream());
        pr.println("hello");
        pr.flush();
    }
}

And this is my Server code:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.Buffer;

public class Server {
    public static void main(String[] args) throws IOException {
        ServerSocket ss = new ServerSocket(4999);
        Socket s = ss.accept();
        System.out.println("client connected");
        InputStreamReader in = new InputStreamReader(s.getInputStream());
        BufferedReader bf = new BufferedReader(in);
        String str = bf.readLine();

        System.out.println("client : " + str);

    }
}

I tried to close the Client connection in the Client class with s.close(); but the same Exception occurred.

0

There are 0 best solutions below