Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
|
Re: Alternative zur TCP - Daten blind senden???
15. Feb 2005, 20:22
Also wenn ich dich richtig verstehe so erzeugt der Server Daten durch eigene Threads die dann an alle Clients gesendet werden müssen. Nun in der Frage steckt die Antwort. Zuerst erzeugen Threads Daten, schreibend und kein Client darf darauf Zugriff haben, wenn diese Threads fertig sind übergeben sie ihre Arbeit um sie an die Clients zu senden. Ab diesem Moment sind die Daten statisch unveränderlich und können readonly gemeinsam durch die Clientthread gelesen werden. Das wichtigste dabei sind also garnicht mehr die Daten ansich sondern die Laufzeit-Synchronisation zu den Daten -> Daten erzeugen durch separate Threads, readonly Daten durch Clientthreads lesen und verteilen. Es sollte eben nur zu den Daten ein Lebenszeitzähler verwaltet werden, d.h. beginnt ein Clientthread die Daten zu verteilen dann wird dieser Zähle inkrementiert ist er fertig dekrementiert er den Zähler. Die Synchronisation dieses Zähler ist der einzigst kritische Zeitpunkt und kann mit InterlockedIncrement() erschlagen werden. Nach einer gewissen Zeitdauer, bzw. wenn der Lebenszeitzähler auf 0 ist oder wenn neue Daten anliegen können die gemeinsammen Serverdaten freigegeben werden.
Von einer Vorstellung musst du dich gedanklich verabschieden: es kann keine Systeme geben die jedem Clienten zujedem Zeitpunkt die Daten in Echtzeit und mit realem Abblid liefern.
Gruß Hagen
|