Witam,
tworzę prostą aplikację klient serwer działającą lokalnie. Na razie mogę wysyłać wiadomości na serwer i je odbierać, jednak problem się pojawia, gdy chcę z serwera wysłać kilka wiadomości na raz do klienta.
Mianowicie:

Wątek odbierający wiadomości w kliencie wygląda u mnie tak:

 
Thread receiverThread=new Thread(new Runnable() {
            @Override
            public void run() {

                while (true) { // pętla by odbierał cały czas

                    try {

                       
                        in = new InputStreamReader(socket.getInputStream());
                        reading = new BufferedReader(in);

                        String message = reading.readLine();
                        System.out.println(message);


                    } catch (Exception e) {

                    }

                }
            }
        });
        receiverThread.start();  // uruchomienie wątku odbierającego

Jeśli wiadomość z serwera wysyłam tak:

 try {

                save = new PrintStream(socket.getOutputStream());           

                save.println("Wiadomosc jeden");

                save.println("Wiadomosc dwa");

                save.println("Wiadomosc trzy");
            
     
         }

        } catch (Exception e) {
        //obsluga wyjatku
        }

To w kliencie przy pierwszym uruchomieniu wyświetla mi wiadomość jeden i dwa, a przy drugim tylko wiadomość jeden.

Jeśli wpisze to w pętle to odbierane są w kółko wszystkie trzy wiadomości

while(true)
{
                save.println("Wiadomosc jeden");

                save.println("Wiadomosc dwa");

                save.println("Wiadomosc trzy");
}

Zastanawiam się, czy trzeba tu jakąś synchronizację zastosować, ale mam osobny wątek do wysyłania wiadomości na serwer, więc i odbieranie i wysyłanie powinno działać w miarę bez zakłóceń (chyba, że się mylę?)

Pewnie problem jest błahy, ale mimo wielu prób póki co go nie rozwiązałem.
Dzięki za wszelką pomoc. ;)