Einfacher Server funktioniert nicht



  • Ich habe einen Server geschrieben, der nichts weiter zutun hat, als einen String zu einem Client zu senden.

    Der dafür von mir gemachte Client soll diesen String entgegennehmen und ihn ausgeben. Stattdessen wird mir eine Nullreferenz ausgegeben. Wo liegt der Fehler?

    Server.java:

    import java.net.*;
    import java.io.*;
    import java.util.Scanner;
    
    public class Server {
        public static void main(String[] args) {
            try (ServerSocket serverSocket = new ServerSocket(50000)) {
                Socket client = serverSocket.accept();
                OutputStream outputStream = client.getOutputStream();
                PrintWriter printWriter = new PrintWriter(outputStream, true);
                printWriter.print("Hello from Server");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    

    Client.java

    import java.net.*;
    import java.io.*;
    
    public class Client {
        public static void main(String[] args) {
            try (Socket socket = new Socket("localhost", 50000)) {
                InputStream inputStream = socket.getInputStream();
                InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
                BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
                String messageFromServer;
                messageFromServer = bufferedReader.readLine();
                System.out.println(messageFromServer);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    


  • Verrat doch wenigstens, in welcher Zeile die NPE geworfen wird.

    Hat wahrscheinlich nichts mit dem Fehler zu tun, aber den PrintWriter, den OutputStream und den Socket solltest Du auch schließen, nicht nur den ServerSocket (auf Client-Seite analog).



  • Ich verrate dir, dass überhaupt keine NPE ausgegeben wird. es wird "null" ausgegeben.