DarthShader
Erfahrenes Mitglied
Hallo,
ich hätte da eine Frage bezüglich den Stichworten Netzwerk, Multicast/MulticastSocket:
Meine Anwendung kann einen Multicast ausführen - dieser kommt auch bei allen Clients in derselben Gruppe an. Diese schicken nun von sich aus eine Antwort an das Programm, von dem der Multicast kam - und hier setzt meine Frage an:
Wie muss ich dieses Empfangen umsetzen? Meine Gedanken dazu sind: Ich bräuchte nach dem Versenden ja z.B. eine while Schleife, in der vom MulticastSocket die receive Methode ausgeführt wird. Die Schleife muss sein, da ich nicht weiß, von wie vielen anderen Rechnern eine Antwort kommt. Dann müsste man ja einen Timeout haben, sodass z.B. nach ein paar Sekunden nicht mehr auf eine Antwort gewartet wird, aber wie kann ich dies machen? Theoretisch könnte man das Multicast Empfangen ja in einen eigenen Thread packen, und ein weiterer Thread stellt den Timeout dar, der nach eine gewissen Zeit den ersten Thread beendet... das kommt mir aber sehr "fummelig" vor, gibt es da eine bessere Vorgehensweise?
Vielen Dank
ich hätte da eine Frage bezüglich den Stichworten Netzwerk, Multicast/MulticastSocket:
Meine Anwendung kann einen Multicast ausführen - dieser kommt auch bei allen Clients in derselben Gruppe an. Diese schicken nun von sich aus eine Antwort an das Programm, von dem der Multicast kam - und hier setzt meine Frage an:
Wie muss ich dieses Empfangen umsetzen? Meine Gedanken dazu sind: Ich bräuchte nach dem Versenden ja z.B. eine while Schleife, in der vom MulticastSocket die receive Methode ausgeführt wird. Die Schleife muss sein, da ich nicht weiß, von wie vielen anderen Rechnern eine Antwort kommt. Dann müsste man ja einen Timeout haben, sodass z.B. nach ein paar Sekunden nicht mehr auf eine Antwort gewartet wird, aber wie kann ich dies machen? Theoretisch könnte man das Multicast Empfangen ja in einen eigenen Thread packen, und ein weiterer Thread stellt den Timeout dar, der nach eine gewissen Zeit den ersten Thread beendet... das kommt mir aber sehr "fummelig" vor, gibt es da eine bessere Vorgehensweise?
Vielen Dank