hi,
ich hab da mal eine grundlegende design-frage.
also ich möchte ein netzwerk simulieren wo server über links clients nachrichten schicken, und clients wieder über links requesten und server wieder responsen:
a) die server sollen in kurzen abständen immer wieder broadcasten
b) die links sollen immer um eine gewisse zeit verzögern
c) die clients sollen aber ebenfalls in gewissen zeitabständen an die server nachrichten schicken (ebenfalls über den selben link
z.b. server1 --> link1 --> client1
server1 --> link2 --> client2
server1 --> link3 --> client3
server2 --> link4 --> client4
usw...
ich versuch das mit TimerTask zu implementieren
die server.class hat einen TimerTask der alle x sekunden broadcastet
die link.class hat einen TimerTask der um x sekunden verzögert
und die client.class hat einen TimerTask der alle x sekunden requests startet
die einzelenen objekte sollen alle unterschiedliche zeiten besitzen - z.b. server1 broadcastet alle 2 sek., server2 alle 5, link1 verzögert um 1 sek. link 2 um 5,.... das problem hab ich dann bei den clients - also genau ist das problem: ich hab keine ahnung wie ich das programm terminieren soll - der knackpunkt liegt momentan bei den clients - wenn der erste client fertig ist (also alle antworten auf seine requests bekommen hat) und ich mach ein timer.cancel sind alle client TimerTask weg - ist mir auch klar warum.
nur wie kann ich das nun so umbauen das das programm auf den "langsamsten" clients wartet und dann terminiert?
oder ist das mit TimerTask sowieso totaler schwachsinn und nicht schön lösbar?
ich hab da mal eine grundlegende design-frage.
also ich möchte ein netzwerk simulieren wo server über links clients nachrichten schicken, und clients wieder über links requesten und server wieder responsen:
a) die server sollen in kurzen abständen immer wieder broadcasten
b) die links sollen immer um eine gewisse zeit verzögern
c) die clients sollen aber ebenfalls in gewissen zeitabständen an die server nachrichten schicken (ebenfalls über den selben link
z.b. server1 --> link1 --> client1
server1 --> link2 --> client2
server1 --> link3 --> client3
server2 --> link4 --> client4
usw...
ich versuch das mit TimerTask zu implementieren
die server.class hat einen TimerTask der alle x sekunden broadcastet
die link.class hat einen TimerTask der um x sekunden verzögert
und die client.class hat einen TimerTask der alle x sekunden requests startet
die einzelenen objekte sollen alle unterschiedliche zeiten besitzen - z.b. server1 broadcastet alle 2 sek., server2 alle 5, link1 verzögert um 1 sek. link 2 um 5,.... das problem hab ich dann bei den clients - also genau ist das problem: ich hab keine ahnung wie ich das programm terminieren soll - der knackpunkt liegt momentan bei den clients - wenn der erste client fertig ist (also alle antworten auf seine requests bekommen hat) und ich mach ein timer.cancel sind alle client TimerTask weg - ist mir auch klar warum.
nur wie kann ich das nun so umbauen das das programm auf den "langsamsten" clients wartet und dann terminiert?
oder ist das mit TimerTask sowieso totaler schwachsinn und nicht schön lösbar?