Witam,
mam do napisania aplikacje sieciowa. Klient po zalogowaniu otrzymuje liste aktywnych uzytkownikow i.. albo sam do nich cos wysyla (konkretna wiadomosc), jednoczesnie powinien odbierac do niego wysylane komunikaty.
W takim razie po zalogowaniu klient zaczyna nasluchiwac na konkretnym porcie.. I tu sie pojawia problem. stworzylem sobie metode nasluch() ruszajaca z potwierdzeniem zalogowania.
Teraz.. chcialbym zeby ta metoda jakkolwiek dzialala w tle, ktora wyglada mniej wiecej tak:
try {
servertcp server = new servertcp(porcik);
naglowek=server.startListening();
if (naglowek[1].equals("Who")) who(naglowek);
} catch (Exception e) {
e.printStackTrace();
}
no i server.StartListening(); zaczyna nasluch, po odebraniu komunikatu zwraca tablice stringow bedaca komunikatem..
majac juz to na podstawie tresci komunikatu tutaj wywoluje sobie jakas metode XXX (tutaj np who).
Teraz.. zeby po odebraniu pierwszego komunikatu klient nasluchiwal dalej zapetlam to... i program przyjmuje komunikaty.. ale nie rusza sie dalej, bo czeka na kolejne i kolejne i kolejne.. w rezultacie "Wisi".
prawde mowiac nie wiem co dalej..
moze jest jakis 'timer' ktory co jakis czas sprawdza czy jest polaczenie? tzn.. socket.accept() z odpowiednim timeoutem zeby sie nie wieszalo ;)