einfache TCP IO frage



  • Hi!

    Hab einen Server, der schickt mir einfach auf diese Art TCP Nachrichten:

    OutputStream output = socket.getOutputStream();
    
    while(laeuft) {
       output.write(message.getBytes()); 
    }
    

    Connecte ich mit Telnet, empfange ich alles wunderbar.

    Nun mein Client:

    Hier sende ich Nachrichten und empfange sie. Empfangen blockiert, sollte mir egal sein, da ich nach jedem senden fix einen Empfang kriege. Aber genau das ist das Problem, ich empfange nix.

    BufferedReader tcpIn = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    /* init*/
    
    Und meine Schleife...
    
    while ((input = reader.readLine()) != "close") {
    				out.println(input); //SENDEN
    				System.out.println(tcpIn.readLine()); //EMPFANGEN
    			}
    

    Nun. Er sendet schön, aber dann blockiert er, er empfängt es nicht? Aber telnet macht das ohne Probleme. Wo liegt der hund?



  • Wo sendest du da etwas?



  • Der server sendet mit: output.write(message.getBytes());

    Der Telnet Client empfängt das ohne probleme.



  • hab mir das problem selbst gelöst.

    hab nen printwriter am server verwendet. und mit println geschrieben. danke für den unbeabsichtigten denkanstoß. CLOSE!



  • Ohne den PrintWriter:
    Abschicken mit output.flush() nicht vergessen 🙂


Anmelden zum Antworten