1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

DOs, NSFileHandle und Dateitransfer im Allgemeinen

Dieses Thema im Forum "OS X-Developer" wurde erstellt von gert, 06.08.08.

  1. gert

    gert Macoun

    Dabei seit:
    19.08.05
    Beiträge:
    118
    Hallo,
    ich schreibe gerade an nem Client-Server System bei dem es prinzipiell darum geht Filesets auf einen Server zu uebertragen bzw. Sets oder einzelne Files von diesem zu beziehen.

    Die grosse Frage ist jetzt, mit welchen Mitteln ich diese Kommunikation realisiere?

    Fuer die Uebertragung der Informationen zu den Dateien hab ich je File Dictionaries mit den Infos.
    Um Aktionen auf dem Server (z.B. Queries) auszufuehren bieten sich natuerlich DOs foermlich an, da man die benoetigten Methoden einfach implementieren und aufrufen muss. Ausserdem ist durch die spezifikation eines entsprechenden Protocols das ganze beliebig erweiterbar und das ohne grossen Aufwand.

    Stellt sich nun die Frage, wie ich die Dateien durch das Netzwerk schubbse.
    Da hab ich momentan auch eine Loesung mit DOs und FileHandles entwickelt: Das NSFileHandle des zu uebertragenden Files wird an den Server uebergeben und diese kann das File so vom Client auslesen und speichern.

    - (void)sendFileHandle:(in byref NSFileHandle *)fileHandle;

    Wichtig zu wissen ist, dass auch grosse Dateien uebertragen werden muessen. Somit kann ich das zu uebertragenden File nicht als NSData senden, weil ja dann Speicher in der Groesse der Datei benoetigt werden wuerde. Der Transfer muss damit Stueck fuer Stueck realisiert werden.

    Das geht mit obiger Loesung eigentlich ganz gut, z.B.: [fileHandle readDataOfLength:100000]; bis nichts mehr zu lesen ist.

    Problematisch finde ich die Fehlertolleranz bei dieser Art der Uebertragung und natuerlich den Faktor, dass man durch die Verwendung von DOs den Client und Server sehr eng aneinander bindet.

    Alternativ waere die Verwendung von z.B. AsyncSockets fuer den Dateitransfer, wobei ich dann natuerlich die Kontroller der einzelnen Chunks einer Datei selbst implementieren muesste. Sicherlich nicht das Problem, aber warum schwierig(er), wenns auch einfach geht.

    Deshalb die Frage, wie Ihr soetwas realisieren wuerden? Also die Uebertragung der Attribute und Infos einer Datei, sowie ihren Inhalt und das moeglichs Arbeitsspeichersparend.

    Wuerde mich sehr ueber Feedback freuen.

    Beste Gruesse,
    Gert
     

Diese Seite empfehlen