[ boris Dj.bl @ 14.09.2008. 00:23 ] @
[ boris Dj.bl @ 14.09.2008. 00:23 ] @
[ boris Dj.bl @ 15.09.2008. 10:55 ] @
Samo da zatvorim temu.
Rijesio sam zadatak i to upravo kako sam prvobitno i planirao. Dobra je bila ideja samo nisam bio siguran kako da je realizujem. Jedino sto mi u Serveru nije sam String jer kad stavim String a ="..."; pa onda String b=a; desice se kopiranje i to ce biti 2 razlicita stringa a meni je trebalo upravo suprotno, tj da obe reference pokazuju na isti string. To sam rjesio tako sto sam napravio svoju klasu sa protected elementom String, takodje tu postoji i jos jedan protected element int. I onda iz Servera proslijedim threadovima referencu ovog objekta i oba threada obradjuju isti objekat. Zatim u threadovima napravim kopiju ovog protected elementa int pa kad jedan klijent posalje slovo uvecam protected element int za 1. A drugi je do tad bio u beskonacnoj while petlji gdje se kopija int-a poredila sa elementom objekta int i kad nastane razlika onda taj klijent igra. To bi bilo ukratko to, cisto ako nekog bude zanimalo. Ako neko skonta jos koji nacin nek postavi cisto informativno a koga jos nesto zanima u vezi mog nacina, slobodo nek pita. pozz [ boris Dj.bl @ 22.09.2008. 09:34 ] @
Jos nesto da dodam ako uopste ikog zanima.
Ovaj prvi nacin radi ali nije efikasan jer se u thread-ovi stalno vrti while petlja sto rezultuje konstantnim 100% opterecenjem procesora. Tako da je to bolje rijesiti koristeci konkuretno programinje. U konkretnom slucaju samo sam modifikovao nacin kako jedan thread znao da je drugi odigrao pa tako vise nema while petlju vec sam dodao u zajednicki objekat 2 metode cekaj() i nastavi() koje pozivaju wait() i notify() i tako naizmjenicno igraju. [ cope.rs @ 24.09.2008. 12:15 ] @
izkomplicira ga ti maksimalno...
Imaš sve lepo i jednostavno ovde http://java.sun.com/docs/books...king/sockets/clientServer.html Tu pogledaj Supporting Multiple Clients na dnu. Znači imaš listener-e za to šta kažu klijenti. A onda sve ide na jedno mesto, obrađuje se i šalje svima (ili limitirano samo nekima, to je sad mali dodatak). I kraj priče. [ boris Dj.bl @ 25.09.2008. 22:02 ] @
preff nisam ga zakomplikovao vec ti nisi shvatio zadatak, ocigledno.
To sto ti kazes i sto tamo pise ja sam na samom pocetku bio uradio al i pored toga sam imao poteskoca dok nisam zavrsio zadatak. O cemu se konkretno radi. Ja svakako imam u serveru while petlju sa listenerom sto omogucava serveru komunikaciju sa vise klijenata jer kad se jedan poveze nastane thread koji dalje komunicira sa tim klijentom a server nastavi osluskivati ostale klijente. Pa za drugi klijent nastane drugi thread i tako redom. Tu nista nema sporno. Medjutim meni je ovaj zadatak na pocetku predstavljao problema jer sam iz jednog thread-a mora poslati poruku drugom thread-u. Znaci kad jedan klijent igra drugi mora da ceka. Kad odigra on javi to svom thread-u a tad taj thread mora to javiti drugom thread-u koji onda posalje poruku svom klijentu da on sad igra a prvi tad ceka. I tako naizmjenicno. E da bi se ovo realizovalo moras imati zajednicki objekat i koristi wait() i notify(), ja ne vidim drugi nacin. Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|