Moxl hat geschrieben:Also ich habe gehört das Sendnetworkdata() besser sei als SendnetworkFile(), warum genau wäre meine erste frage?
Weil der Code dieser Funktion veraltet ist, und hier und da Fehler machen
könnte.
Moxl hat geschrieben:und nun, wie mache ich das genau mit sendnetworkdata()?ich lese eine datei aus,reserviere speicher in der größe der datei,schicke den speicherbereich via sendnetworkdata(),
Ist die Datei "klein", kannst du den Speicher mit AllocateMemory() komplett reservieren, die Datei mit ReadData() drot hinein lesen und dann den Speicher mit SendNetworkData() verschicken.
so wie genau empfange ich das jetzt?
der client/server der die datei empfangen soll weiß ja nicht wie groß die datei bzw. die daten sind die empfangen werden sollen... also woher weiß ich wie viel speicher ich reservieren muss um die daten wiederrum in eine datei zu schreiben?
Du kannst dir ein eigenes kleines Protokoll schreiben, in dem du zB. erst Dateigröße (und Name+Nameslänge) schickst und danach erst den Dateiinhalt.
Als Empfänger list du dann erst die Dateigröße in einen kleinen Speicher (zB Long oder Quad) und weiß dann, wie viel du als nächstes reservieren musst für den Inhalt und ggf. den Namen.
Willst du mehr als nur Dateien verschicken, empfiehlt es sich sowieso dir ein eigenes Protokoll anzulegen, sodass du immer eine "Identifikations" vorweg schickst, damit der andere weiß, was nun kommt.