Dateien versenden über TCP
Übersicht

![]() |
Progger93Betreff: Dateien versenden über TCP |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi, ich hab folgendes Problem
Sende Funktion: Code: [AUSKLAPPEN] Function sendfile(partner$)
send_file=1 Local datei$=DLLGetOpenFileName$("Please Select File To Load","C:\",sAFilter$,OFN_HIDEREADONLY Or OFN_FILEMUSTEXIST) If datei$ <>0 Then Local dat=ReadFile(datei$) Local file_size#=FileSize(datei$) Local rest=file_size Mod 50 ResizeBank bank,file_size ReadBytes (bank,dat,0,file_size) WriteByte tcp,3 WriteString tcp,partner WriteInt tcp,file_size Local datei_name$=ConvertFoldernameToFilename$(datei$) WriteString tcp,datei_name$ refreshtimer=MilliSecs() For I#=0 To ((file_size-rest)/50)-1 WriteBytes (bank,tcp,I*50,50) send_progress=I*50/file_size If refreshtimer-MilliSecs()>100 Then refreshtimer=MilliSecs() draw() EndIf Next WriteBytes(bank,tcp,file_size-rest,rest) CloseFile dat EndIf send_file=0 End Function Weiterleitfunktion des Servers: Code: [AUSKLAPPEN] Case 3
partner$=ReadString(c\stream) size=ReadInt(c\stream) rest=size Mod 50 fname$=ReadString(c\stream) For p.client=Each client If p\name$=partner$ Then WriteByte p\stream,3 WriteInt p\stream,size WriteString p\stream,fname$ Color 255,255,0 Print c\name$+" sendet ["+fname$+"] an "+ p\name$ Color 0,0,0 ResizeBank(bank,size) For i=0 To ((size-rest)/50)-1 ReadBytes(bank,c\stream,i*50,50) WriteBytes(bank,p\stream,i*50,50) Next ;Rest ReadBytes(bank,c\stream,size-rest,rest) WriteBytes(bank,p\stream,size-rest,rest) EndIf Next Empfangfunktion: Code: [AUSKLAPPEN] Case 3 Local file_size=ReadInt(tcp) Local rest=file_size Mod 50 Local file$=ReadString(tcp) Local datei=WriteFile("recieved/"+file$) ResizeBank(bank,file_size) For I=0 To ((file_size-rest)/50)-1 ReadBytes (bank,tcp,I*50,50) WriteBytes(bank,datei,I*50,50) Next WriteBytes(bank,datei,file_size-rest,rest) CloseFile datei Die Datei wird zwar schnell übertragen und die gleiche Größe wie die Ausgangsdatei, allerdings lassen sich z.B. Bilddateien nicht öffnen("Die Datei ist beschädigt") Wenn man sich die Datei grob im Editor ansieht merkt man dass das Ende der Datei komplett anders ist. Aus Code: [AUSKLAPPEN] ;~IDEal Editor Parameters:
;~C#Blitz3D wird Code: [AUSKLAPPEN] ØØØ*haql,´’\o|ßQ|%ÝxÏÙ…Ã70øñÁÿØÖÃçyòÄñ Was kann ich tun? MFG Progger93 |
||
MfG Pascal
Win 7|T7250@2.0Ghz|3GB RAM|M8600GT |
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
habe deinen Code vom Senden nicht ganz gecheckt, aber ich würde das so machen: der leser macht Code: [AUSKLAPPEN] handle=readline("datei")
while not eof handle writebyte sende_stream, readbyte(handle) wend closetcpstream sende_stream und der empfänger Code: [AUSKLAPPEN] while not eof empfangs_stream writebyte datei,readbyte empfangs_stream wend closetcpstream empfangs_stream das ist kein wirklicher Code, soll nur das Prinzip erklären, dass man aus einer Datei jeden Byte einzeln auslesen schicken und speichern kann, glaube ich. So wäre ich die Sache angegangen. Viele Grüße TimBo[/code] |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
![]() |
Progger93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja so hab ich das am anfang auch gemacht allerdings war das sehr langsam!
Dann hab ichs mit Readbytes versucht und jetzt gehts nichmehr... |
||
MfG Pascal
Win 7|T7250@2.0Ghz|3GB RAM|M8600GT |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group