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