![]() |
CRC Berechnen
Hallo, ich möchte in mein Programm einen "Map Downloader" für ein altes Spiel integrieren. In der Theorie stelle ich mir das so vor:
1. Client sucht welche Maps vorhanden sind 2. Client verbindet zu http host -> fragt Mapliste z.b. aus Textdatei ab 3. Client vergleicht ob eine Map aktueller als die installierte 4. Client läd die datei herunter. Das Problem dabei ist: wie vergleicht man am besten ob 2 Files identisch sind? bei der Größe ist es problematisch. Wenn man 2x die Selbe Map compiled, verändert sich lediglich eine "versionskennung". die ist so klein, das man nicht mit Dateigröße vergleichen Arbeiten kann. Gibt es da evtl eine Bessere variante? |
Re: CRC Berechnen
Japp gibts :) Im Internet bist du bestimmt schonmal über den MD5-Algorithmus gestolpert. Damit ist es möglich 2 Dateien relativ(!) schnell miteinander zu vergleichen.
Falls du mit .NET arbeitest kann dir folgender Artikel helfen: ![]() |
Re: CRC Berechnen
Du hast das Stichwort doch schon im Titel?!
Erstes Ergebnis von ![]() ![]() (BTW, falls das nicht klar sein sollte: CRC ist ein Verfahren zur Prüfsummenberechnung...) |
Re: CRC Berechnen
also in deiner Textdatei auf'm Server neben dem Dateinamen noch den Hash der Datei ablegen
und mit dem der Datei auf dem Rechner vergleichen. (nicht daß jetzt wer auf die Idee kommt erst die Datei runterzuladen und lokal den Hash zu bilden ... dann könnte man auch gleich direkt vergleichen) |
Re: CRC Berechnen
Man könnte auch ganz abwegig auf Client und Server eine Versionsnummer ablegen und die vergleichen, aber das wäre wahrscheinlich zu langweilig :stupid: ...
|
Re: CRC Berechnen
*Pfhh*, für echte Männer viel zu trivial :lol:
|
Re: CRC Berechnen
genau ... und dann vergißt mal wer die Versionsnummer zu erhöhen :roll:
|
Re: CRC Berechnen
Man könnte sich sogar ganz auf eingebaute Mechanismen wie If-Modified-Since/304 verlassen, Verzählen ausgeschlossen ;) . Wenn der Server dabei mitspielt, bräuchte man auf dessen Seite nicht einmal eigenen Code.
|
Re: CRC Berechnen
man kann die versionsnummer nicht vergleichen weil es nicht direkt eine versionsnummer ist es ist einfach in die map mit integriert und nicht ohne weiteres auslesbar
|
Re: CRC Berechnen
Dann erstelle CRC-Prüfsummen der Dateien.
Auf dem Server ein PHP-Script das die CRC der gewünschten Datei(en) ermittelt. Noch eine Datenbank die für Dateiname/CRC das Erstellungsdatum, Version und optional weitere Informationen zurückgibt (und beim Upload diese Infos aufnimmt). Jeweils eine Anfrage für die Datei/CRC auf Client und Server, vergleichen und fertig. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz