Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Komunikacija 2 klijenta u mreznom programiranju u Javi

[es] :: Java :: Komunikacija 2 klijenta u mreznom programiranju u Javi

[ Pregleda: 1975 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

boris Dj.bl
Dipl.ing.
Banjaluka

Član broj: 167469
Poruke: 77
79.143.164.*



Profil

icon Komunikacija 2 klijenta u mreznom programiranju u Javi14.09.2008. u 00:23 - pre 190 meseci
Ovo je zadatak.



Dva klijenta se igraju vjesalice.

Meni samo jedna stvar nije jasna.
Posto ce bit 2 klijenta oni ce se vezati na server i svaki ce imati svoj thread.
Kad posalju jedno slovo dobice ili istu rijec kao prije slanja sto znaci da to slovo ne postoji, ili ce dobiti djelimicno puniju rijec sa tim slovom na odgovarajucoj poziciju sto znaci da su pogodili slovo. Ali tad treba kad jedan klijent pogodi da i drugi dobije obavjestenje o tom.
E to mi nije jasno kako da iz thread-a jednog klijenta posaljem poruku drugom klijentu.

Ja sam kontao da imam neki string u Serveru koji bi predstavljao tu rijec i on bi bi zajednicki za oba thread-a.
Pa kad ga jedan thread promjeni bice i u drugom promjenjen al opet se javlja problem kako da znam da se promjena uopste desila.
Jedino da imam lokalnu kopiju tog stringa u thread-u pa da imam neku beskonacnu petlju gdje bi to stalno poredio i kad nadje razliku da posalje poruku.

Samo mi je to palo napamet al mi izgleda mnogo komplikovano a cak ni to ne znam kako da realizujem.

Pa bih bio zahvalan na svim prijedlozima kako ovo uopste rijesiti.
 
Odgovor na temu

boris Dj.bl
Dipl.ing.
Banjaluka

Član broj: 167469
Poruke: 77
79.143.164.*



Profil

icon Re: Komunikacija 2 klijenta u mreznom programiranju u Javi15.09.2008. u 10:55 - pre 190 meseci
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
 
Odgovor na temu

boris Dj.bl
Dipl.ing.
Banjaluka

Član broj: 167469
Poruke: 77
79.143.164.*



Profil

icon Re: Komunikacija 2 klijenta u mreznom programiranju u Javi22.09.2008. u 09:34 - pre 189 meseci
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.
 
Odgovor na temu

cope.rs
Predrag Stojadinović
preff.net
Aachen

Član broj: 145487
Poruke: 145
212.66.146.*

Sajt: www.prefko.com


Profil

icon Re: Komunikacija 2 klijenta u mreznom programiranju u Javi24.09.2008. u 12:15 - pre 189 meseci
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.
Pedja
- http://www.CoPe.rs
- http://iKr.me - GROK! SKRATI TAJ LINK!
 
Odgovor na temu

boris Dj.bl
Dipl.ing.
Banjaluka

Član broj: 167469
Poruke: 77
79.143.164.*



Profil

icon Re: Komunikacija 2 klijenta u mreznom programiranju u Javi25.09.2008. u 22:02 - pre 189 meseci
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.
 
Odgovor na temu

[es] :: Java :: Komunikacija 2 klijenta u mreznom programiranju u Javi

[ Pregleda: 1975 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.