Forum Sveta kompjutera

Nazad   Forum Sveta kompjutera > Test Run > Programiranje
Uputstvo Članstvo Kalendar Današnje poruke Pretraži

Programiranje Programski jezici, tehnike, alatke...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 5.12.2007, 15:03   #1
anqe1ki11er
Član
 
Član od: 11.12.2006.
Lokacija: Sabac
Poruke: 56
Zahvalnice: 21
Zahvaljeno 6 puta na 4 poruka
Slanje poruke preko MSN-a korisniku anqe1ki11er
Exclamation J2ME + Bluetooth server + nevolja sa thread-om

E ovako: pisem neku aplikaciju za mobilne telefone, aplikacija u sebi sadrzi bluetooth server koji treba da ceka dolazece konekcije od drugih uredjaja.
E sad, taj server, to jest jedna linija koda u njemu >>connection1=service1.acceptAndOpen();<< blokira trenutni thread.
Sto je normalno, to jest tako i treba da radi. Da bih omogucio da mi ta linija koda ne glavi celu aplikaciju ja sam deo koda koji pretstavlja server stavio u novi thread.
E sad SHOCK: umesto da ostatak aplikacije normalno radi, on to ne cini, to jest opet je blokiran od strane servera koji se nalazi u zasebnom thread-u.
Moje pitanje je: je li ovo normalno (nemoguce da je); jel' imao neko slicno iskustvo; i uopste koji je vrag glupom serveru, zasto glavi svoj thread i thread u kome se nalazi ostatak aplikacije (GUI...);

Poslednja ispravka: anqe1ki11er (5.12.2007 u 18:36)
anqe1ki11er je offline   Odgovor sa citatom ove poruke
Stara 6.12.2007, 7:45   #2
seymourc64
Član
 
Član od: 5.12.2005.
Lokacija: Sombor
Poruke: 245
Zahvalnice: 7
Zahvaljeno 31 puta na 24 poruka
Određen forumom Re: J2ME + Bluetooth server + nevolja sa thred-om

Obicno se pri pisanju servera u glavnom threadu stavi beskonacna petlja koja osluskuje klijente, a daemon niti(thread) pravis ako zelis da se radi jos nesto u pozadini+svaki put kreiras po jednu daemon nit kada se nakaci klijent.

E sada sto se tice tvog problema. Da li si siguran da se glavna nit ne prekida posle poziva nove niti koja je kreirana kao non-damon (program se zavrsava kada se zavrse sve njegove non-dameon niti, tako da nema veze sto ti se zavrsi main)? Mozda koristis neki deljeni resus u obe niti, pa si pogresio negde kod lock/unlock-a? Ako nije to, ne bih znao u cemu je problem. Inace, nisam radio ista za mobilne telefone, tako da govorim uopsteno...
seymourc64 je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku seymourc64 na korisnoj poruci:
anqe1ki11er (6.12.2007)
Stara 6.12.2007, 21:26   #3
anqe1ki11er
Član
 
Član od: 11.12.2006.
Lokacija: Sabac
Poruke: 56
Zahvalnice: 21
Zahvaljeno 6 puta na 4 poruka
Slanje poruke preko MSN-a korisniku anqe1ki11er
Određen forumom Re: J2ME + Bluetooth server + nevolja sa thred-om

Citat:
seymourc64 kaže: Pregled poruke
Obicno se pri pisanju servera u glavnom threadu stavi beskonacna petlja koja osluskuje klijente, a daemon niti(thread) pravis ako zelis da se radi jos nesto u pozadini+svaki put kreiras po jednu daemon nit kada se nakaci klijent.

E sada sto se tice tvog problema. Da li si siguran da se glavna nit ne prekida posle poziva nove niti koja je kreirana kao non-damon (program se zavrsava kada se zavrse sve njegove non-dameon niti, tako da nema veze sto ti se zavrsi main)? Mozda koristis neki deljeni resus u obe niti, pa si pogresio negde kod lock/unlock-a? Ako nije to, ne bih znao u cemu je problem. Inace, nisam radio ista za mobilne telefone, tako da govorim uopsteno...
Aplikacija koju pisem nije server, serverom se naziva deo aplikacije koji osluskuje za dolaznim konekcijama u bluetooth terminologiji (bar sam to pokupio u literaturi), i nije u pravom smislu server (kao WEB, FTP...) vec isto sto i socket u networking terminologiji (Nadam se da si razumeo sta hocu da kazem). Ovaj "server" je samo mali deo aplikacije, ali pravi velike probleme (vec 2,5 dana se lomim oko njega). Gore navedena metoda je zamena za beskonacnu petlju, ona je ta koja neprestano ceka dolazne konekcije, i naravno posto beskonacno dugo radi blokira thraead u kome se nalazi, sto je noramalno, ali ono sto nije normalno je da doticna metoda blokira i thread u kome se nalazi GUI. Sto mi potpuno sasvim nije jasno. Inace u J2ME nema main metode (bar se ne zove tako). E sad, s obzirom da si uopsteno pisao vecina posta mi nije od pomoci, ali mislim da si u pravu za lock/unlock. Posto "server" koristi neke resurse iz GUI thread-a. Hvala ti
anqe1ki11er je offline   Odgovor sa citatom ove poruke
Stara 8.12.2007, 22:33   #4
anqe1ki11er
Član
 
Član od: 11.12.2006.
Lokacija: Sabac
Poruke: 56
Zahvalnice: 21
Zahvaljeno 6 puta na 4 poruka
Slanje poruke preko MSN-a korisniku anqe1ki11er
Lightbulb Re: J2ME + Bluetooth server + nevolja sa thred-om


JA SAM IDIOT. ALI JA SAM DEFINITIVNO IDIOT.
Pocinjem da mislim da sam bolji da cuvam ovce, nego da pisem Java code.
Posle 3 dana lomljenja mozga sam uocio gde je greska. A greska je u tome sto sam pri pozivanju "servera", koji je u drugom Thread-u od onog u kome je GUI, kucao:
Server ser = new Server();
Thread prvi = new Thread(ser);
prvi.run();
Umesto:
Server ser = new Server();
Thread prvi = new Thread(ser);
prvi.start();
Pa je JVM pokrenula server kao metodu druge klase, a ne u novom thread-u.
anqe1ki11er je offline   Odgovor sa citatom ove poruke
Odgovor

Bookmarks sajtovi


Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno


Slične teme
tema temu započeo forum Odgovora Poslednja poruka
Prebacivanje sajta sa servera na server tarantula Internet usluge 3 9.12.2006 21:36
Problemi sa bluetooth headsetom Gowron Prenosni računari 0 16.10.2006 14:44
leadtek Winfast 2000 expert - nemogu da dobijem signal na s-video ulazu sa sat. risiv ural Foto i audio/video 17 30.8.2006 1:36
Problem sa Bluetooth USB Dongle Akumu Kvarovi 3 22.8.2006 23:24
MySql problem sa logovanjem na server Tagwer Programiranje 1 26.2.2006 14:16


Sva vremena su po Griniču +2 h. Sada je 22:38.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2024, vBulletin Solutions, Inc.
Hosted by Beograd.com