# callback thread udp



## blackbox87 (5. Jan 2012)

Hallo,

Habe folgendes Szenario.
In meiner Klasse starte ich zwei Threads. (welche innere klassen sind)
Einen der Auf TCP connections hört und einen anderen der auf UDP connections hört.

Im Thread für die UDP Connections läuft eben ne endlosschleife mit nem socket.receive(). Wenn ein Request ankommt müsste ich dann wiederum einen Thread starten der dann mit dem empfangenen Packet etwas macht. Damit der thread für die udp Connections gleich weiter "hören" kann.

okay in diesem neuen "workerthread" wäre es cool wenn ich ne Art Callback zur Ursprünglichen Klasse hätte (die, welche die UDP und TCP listener Threads gestartet hat). Weil ich dort eben Informationen vom empfangenen Paket in eine Liste eintragen möchte. 

Wie realisiert man das....
Zurzeit bin ich über das Callable Interface gestoßen. Jedoch ist das ja irgendwie kein wirkliches callback weil das ja auch blockiert...

bin für tipps dankbar.

lg


----------



## irgendjemand (5. Jan 2012)

das einfachste wäre wohl wenn du ein objekt der instanz der klasse bis nach dort weiterreichst wo dies gebraucht wird ...

also deine init-klasse z.b. gibt an die beiden listen-threads mit [c]this[/c] eine referenz auf sich selbst weiter ...
diese referenz speichern die listener klassen dann z.b. in einem objekt mit dem namen "init" ...
wenn jetzt ein neuer workerthread erstellt wird wird an diesen einfach genau dieses objekt weitergegeben ...


ob das auch alles so mit inneren klassen problemlos klappt weis ich nicht ... bin mir aber unsicher warum du überhaupt innere klassen verwendest ... macht für mich in diesem zsenario keinen sinn


----------



## blackbox87 (5. Jan 2012)

danke,
das wäre auch mein erster gedanke gewesen.
Das kommt mir halt nicht so "elegant" vor aber so sollte es funktioniern  thx


----------

