Wątki w javie

0

Witam
Mam do napisania chat'a w javie. Piszę na wątkach i mam pewien problem. Otóż jak wyśle klient każdy wątek w swojej pętli ma taki kod

while (true) {

            inputLine = in.readLine();
            putOnMessagesStack(inputline,id);
            outputLine = inputLine;
                outputLine = getOtherMessages();
            out.println(outputLine);
            if (outputLine.equals("Bye"))
            break;
        }

działa to tak że po wejściu czeka na tresc od klienta. Po jej otrzymaniu wysyłają na stos wiadomości (obiekt który jest wspólny dla wszystkich wiadomości i który jest używany do przesyłania wiadomości pomiędzy wątkami). Następnie sprawdza czy nie ma wiadomości z innych wątków.

Wszystko działa ok. Problem natomiast jest taki, że: Aby została metoda getOtherMessages(); i uaktualniony został widok wiadomości musi wykonać się inputLine = in.readLine();. Czyli żeby doszły wiadomości klient musi najpierw wysłać wiadomość. Moje pytanie jak zrobić by to ominąć. Czy jest jakąś metoda w klasie wątku która uruchamia się zawsze po przełączeniu do tego wątku ??

0

Hmm. przeczytaj JavaDoc :)

Lepsza metodą jest stworzenie oddzielnego wątku w kliencie, który będzie aktualizował wpisy. Do serwera dopisz metodę getMessageStack() która będzie zwracać listę wiadomości. Wystarczy teraz by nowy watek ją wywoływał co kilka sekud :)

0

Poprzez jaką metodę wywołać w kliencie metodę serwera ???

komunikacja odbywa się poprzez socket więc jak przez socket mogę wywołać metodę serwera???

0

A jak wysyłasz i odbierasz informację od serwera? Można to zrobić w podobny sposób.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0