Bank & Dateien - simple frage, schwere antwort?
Übersicht

alliswrongBetreff: Bank & Dateien - simple frage, schwere antwort? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo leute,
ich möchte gerne wissen wie ich folgendes bewerkstellige: Ich möchte eine Datei per TCP übertragen. Hierbei ist ReadByte und WriteByte zu langsam. Also habe ich mich nach einer Alternative umgesehen und gefunden Read/Writebytes. Doch hierzu findet man im Forum (wenn man Writebytes oder Readbytes eingibt) nur zwei threads die mich nicht wirklich weiter bringen. Ich habe nun folgende funktion geschrieben: Code: [AUSKLAPPEN] Function sendfile(file$, cstream) fstream = ReadFile(file$) bank = CreateBank(1024) kb = FileSize(file$) If fstream <> 0 Then WriteByte cstream, CLIENT_TRANSFER WriteString cstream, file$ WriteString cstream, kb For i = 0 To kb ReadBytes bank, fstream, 0, 1024 WriteBytes bank, cstream, 0, 1024 Next CloseFile fstream End If End Function Bei diesem code kommt allerdings ein "offset out of range" zustande. Weiterhin vermute ich, dass ich die ganze datei am stück verschicke weil ich die bank ja dementsprechend erzeuge. Mein ziel ist es aber, die datei in paketen zu verschicken (1000 oder 1024 bytes) und diese dann am anderen ende der welt wieder zusammenzusetzen. Egal was ich mache, es klappt nicht. Nun sind die "Bankprofis" gefragt: Was mache ich falsch? Danke euch. [EDIT] Nun werden daten übertragen, allerdings mehrfach! Eine 1 kb große datei wird auf einmal über 40 kb |
||
alliswrong |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
lol, ich war der lösung schon soooo nah und hab es nicht gesehen. für alle die das gleiche problem haben, hier der code:
SERVER: file$ = Dateiname cstream = stream zum client Hinweis: Dem clienten wird "CLIENT_TRANSFER" übermittelt damit er weiß, dass daten kommen. Ausserdem wird ihm der dateiname nochmal zurückgeschickt und die größe der datei. Transfer erfolgt in 1024 großen häppchen. Code: [AUSKLAPPEN] Function sendfile(file$, cstream) fstream = ReadFile(file$) bank = CreateBank(1024) kb = FileSize(file$) If fstream <> 0 Then WriteByte cstream, CLIENT_TRANSFER WriteString cstream, file$ WriteString cstream, kb For i = 0 To kb Step 1024 ReadBytes bank, fstream, 0, 1024 WriteBytes bank, cstream, 0, 1024 Next CloseFile fstream End If End Function CLIENT: Hinweis: stream ist die verbindung zum server (bei mir global) Code: [AUSKLAPPEN] Function saveFile() f = WriteFile(MilliSecs() + "_" + ReadString$(stream)) bank = CreateBank(1024) kb = ReadString$(stream) For i = 0 To kb Step 1024 ReadBytes bank, stream, 0, 1024 WriteBytes bank, f, 0, 1024 Next CloseFile f End Function |
||
![]() |
hazumu-kun |
![]() Antworten mit Zitat ![]() |
---|---|---|
Darf ich dir meine Pack-Engine Anbieten?
Damit wird FileTransfer recht einfach. https://www.blitzforum.de/foru...hp?t=32092 Der Download Link ist allerdings tot. Der Gesamte Code ist aber auch in der Codebox drinne. |
||
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann -> nicht omnipotent |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group