Socket mit .writeUtf etwas vom Client zum Server schicken

JavaWolf165

Mitglied
Hallo Java-Forum,

Ich habe mich in den letzen Wochen an Eclipse gesetzt und versucht einen Chat mit Client und Server zu erstellen. Ich kann jetzt im Servercode mit out.writUTF(); Nachrichten zum Client schicken. Hier das Problem: Ich weiss nicht, wie ich über über die gleiche Verbindung vom Client wieder mit .writeUTF(); etwas an den Server schicke.

Vielen Dank schonmal im Vorraus für die Antworten!

JavaWolf
 
Moin,

ohne jetzt zu kennen, was Du da gebastelst hast .... genauso??? 😱
Poste mal den relevanten Code, rumraten möchte hier keiner!

BTW: die Funktion schreibt ja nicht direkt zum Client, sondern:
The java.io.DataOuputStream.writeUTF(String str) method writes a string to the underlying output stream using modified UTF-8 encoding.

Gruß Klaus
 
Eing. möchte ich ja nur wissen was mann vor .writeUTF(); im Client Code schreiben muss weil in.writeUTF
geht net. Wass muss man davorhängen, dass er zu dem Socket schickt, von dem der Client den Data Input Stream bekommt?
 
Sind diese Zeilen richtig die ich hinzufügen würde?


Im Client-Code:

DataOutputStream out;

und

out = new Data OutputStream(socket.getOutputStrem);

und

out.writeUTF();

Im Server-Code

DataInputStream in;

und

in = new DataInputStream(socket.getDataOutputStream);

und

in.readUTF();
 
Geht nicht D:
diese Zeile:
Code:
in = new DataInputStream(socket.getInputStream());
gibt mir ne NullPointerExeption😡
Code:
Exception in thread "main" java.lang.NullPointerException
    at Package.Server.main(Server.java:18)
 
Das ist nicht der richtige Servercode, der war nur zum Testen von den Sockets:
Java:
System.out.println("[Server] Server wird gestartet!");
        serverSocket = new ServerSocket(7777);
        in = new DataInputStream(socket.getInputStream());  
          
        System.out.println("[Server] Server gestartet!");
        while(true){
        socket = serverSocket.accept();
        System.out.println("[Server] Verbunden mit: " + socket.getInetAddress());
        DataOutputStream out = new DataOutputStream(socket.getOutputStream());
        out.writeUTF("Dies ist ein Test");
        System.out.println("[Server] Nachricht gesendet!");
        System.out.println(in.readUTF());
      
        }
 
Zuletzt bearbeitet von einem Moderator:
In der 3.Zeile willst du "socket.getInputStream()" verwenden.
Die Variable "socket" wird aber erst in der while-Schleife gesetzt.

Erkennst du den logischen Fehler?
 

Neue Themen


Zurück
Oben