Sockety czas sprawdzania pakietów

0

Witam,

czy jest jakiś inny sposób na sprawdzanie czy przyszło coś do serwera niż wątek pętla z thread.sleep? Chodzi o to, że bardzo istotny jest dla mnie czas, a jeśli ustawiam sleep na 10ms to procesor mocno dostaje po rajtkach, z kolei 500ms to dużo za dużo. Dzięki za pomoc!

0

Zapoznaj się z przykładem z książki C.Horstmanna,G.Cornella "Java. Techniki zaawansowane".

http://read.pudn.com/downloads56/ebook/197518/v2ch3/ThreadedEchoServer/ThreadedEchoServer.java__.htm
lub
https://www.astarte.org/trac/abj/browser/trunk/src/13/ThreadedEchoServer.java?rev=15

Mam nadzieję, że to pomoże.

0

Dzięki,

na pierwszy rzut oka wygląda ok. Jednak jeżeli się nie mylę to ten sposób nada się do komunikacji synchronicznej. Mnie interesuje komunikacja asynchroniczna. Czyli każda z stron pyta i odpowiada (nie wiadomo kto zaczyna). W tym przypadku jeżeli będziemy czekać na wiadomość, a w między czasie chcemy pytać to do momentu otrzymania wiadomości, sami nie wyślemy swojej. Chyba, że się mylę?

0

Masz rację, to rozwiązanie dział dla klientów przychodzących, którzy pytają o coś serwer a on im zwraca odpowiedź. Przyjrzyj się pakietowi java.nio, który stworzono m.in. do komunikacji nieblokującej.
http://docs.oracle.com/javase/7/docs/technotes/guides/io/
http://www.ibm.com/developerworks/library/j-javaio/

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