Zitat:
Zitat von Hagemann
Ach nein?
Nach dem Spiel kann das durchaus überprüft werden. Wenn jeder Client seine Permutation speichert kann danach überprüft werden ob es verändert wurde. Der Server darf dabei nur nicht die einzelnen Mischvorgänge der Clients mitbekommen.
|
Wie willst du hier eine Manipulation herausfinden ?
Server übergibt A die Permzahl "15"
der "mischt neu" und übergibt an B "22"
der "mischt neu" und übergibt zurück an den Server "7"
Und woher willst du nun wissen ob B die 7 gemischt oder sortiert hat ?
Das ist genauso als alle an nem tisch sitzen, einer mischt heimlich und übergibt die Karten an den nächsten, der letzte der heimlich mischt sortiert sie sich aber... und jetzt überprüf mal ob er gemischt oder sortiert hat.
Und wenn jeder seine eigene Mischmethode programmiert lässt sich am Ende nicht feststellen ob der Server das Deck berechnet hat
Die oben genannte Methode funktioniert schon, und ist im Grunde dasselbe das NetWebs beschrieben hat:
Zitat:
Der Server teilt den Clients einen Key vor jedem Spiel mit.
Vielleicht auch nach jedem Zug.
Nach jedem Spiel oder nach jedem Zug einen Wert.
Wert und Key lassen dann die zuletzt gezogene Karte ermitteln.
|
Zitat:
Zitat von NetWebs
Im Prinzip richtig. Im Gedanken aber falsch.
Der Client bekommt gar KEINE Karte, er bekommt nur eine Ansicht auf seine Daten.
Die Karten (die Objekt-Instanzen) liegen im Speicher des Servers.
|
Hab nie was anderes gesagt...
Zitat:
Dafür gibt es Webservices und Data Contracts.
Hier kommen Standards zum Einsatz. Der Server bietet den "Nächste Karte"-Service an, der Client bedient sich an diesem. Protokoll und Kommunikation muss man dann eben nicht selbst implementieren...
|
Die Verarbeitung der Daten muss aber für alle gemeinsam definiert werden.
Was hilft mir eine Angabe "<id0:7>" wenn ich nicht weis worauf sich das bezieht und was was bedeutet?
Genauso ist es nicht zielführend wenn jeder "Server" seine eigene Art hat Daten bereitzustellen.