Java ME, sockets, tylko dla zaawansowanych

0

Witam.
W zwiazku ze skromnymi dokumentacjami oraz przykladami wyszukanymi w internecie zwaracam sie do Was z pytaniem: czy ktos z Was dzialal juz z socketami w Java ME?

Planuje wlasnie aplikacje (JavaME), ktora nawiaze polaczenie (przy uzyciu socketow) z dedykowanym hostem na wybranym porcie (np. test.com:123) oraz utrzyma to polaczenie w celu wymiany danych.
Po stronie test.com stoi aplikacja/serwer napisana w c++, nasluchuje na 123, obsluguje specjalny protokol.
Podsumowujac: obustronna komunikacja serwer/telefon.

Podstawowe pytanie: czy w telefonie musze uzywac ServerSocket? Czy wystarczy "zwykly" socket z otwartymi streamami in/out? Jak zrealizowac nasluchiwanie telefonu na dane wysylane od serwera? Czy umiescic tworzenie tego socketu w watku? Nie bardzo rozumiem logike tworzenia socketu w telefonie. W kazdym artykule te informacje sa pomijane (moze jako oczywiste), dla mnie jednak sa istotne w celu zrozumienia idei.

0

Wystarczy zwykły socket z otwartymi strumieniami. Oczywiście socket trza uwtorzyć w nowym wątku.

0

Dziękuje za odpowiedz. A czy istnieje jakis mechanizm posiadajacy wbudowane odpalanie zdarzen w razie gdy socket otrzymuje strumien od serwera?

0

Odpalanie zdarzeń tzn?

0

tzn ze nie musze caly czas meczyc socketu metoda available() tylko moge skorzystac z gotowego listener'a ktory bedzie wylapywal zdarzenie pt. "czytaj socket, bo przyszla nowa sekwencja".

Widze, ze szybko odpisujesz, moglbym Cie prosic o kontakt na gg? 2141645.

0

O ile pamiętam to nie ma takiego listener'a, po prostu sprawdzaj metodą available() a potem możesz uśpić wątek na dany okres czasu, by nie nadużywać pamięci komórki.

0

Dużo lepiej stworzyć oddzielny wątek, który będzie czytał dane z socketu (input streama) za pomocą read() (jest to operacja blokująca)
Wywoływanie available() nie jest potrzebne.

0

Tak, tak. Potwierdzam. Nie potrzeba listenera. Metoda read() blokuje wykonywanie kodu - oczekuje na nowy bajt otrzymany na socket.

Dziekuje Wam za pomoc.

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