PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [VB.NET] Remote File Download



hackerking
11.07.2009, 21:49
Jo hey Leute..
ich code grade einen kleinen chat, welcher auch einen file transfer hat. ich mach es so, dass ich beim client die datei mit FileGet einlese:

FileOpen(1, Replace(tmpArr(1), "\\", "\"), OpenMode.Binary)
FileData = Space(LOF(1))
FileGet(1, FileData)
FileClose(1)
SendMessage("Down|||" & Len(FileData) & "|||")und beim server kommt dann das an:


Case "Down"
ThreadChangeLabel(CInt(tmpArr(3)) & "B")
ChangeMax(CInt(tmpArr(3)))
ThreadProgress(0)
tmp = 0
FileOpen(1, My.Application.Info.DirectoryPath & "\" & fromTrans.lblFilename.Text, OpenMode.Binary)
SendMessage("StartDL|||", CInt(fromTrans.Tag))
Download = Truedann beim client wieder:


Case "StartDL"
SendMessage(FileData)und beim server hab ich dann nnach dem die naricht bekommen wurde diesen code:


If Download = True Then
tmp = tmp + Len(tmpMsg)
ThreadProgress(CInt(tmp))
If CInt(Replace(fromTrans.lblFilesize.Text, "B", "")) = tmp Then
FilePut(1, tmpMsg)
FileClose(1)
Download = False
Else
FilePut(1, tmpMsg)
End If
End Ifdas klappt auch aber nur mit 1 kb datein... wenn sie größer sind, dann bekomm ich den fehler, das das programm bei 99 % stehen bleibt (ablesbar an progressbar) und dann einfach nichts mehr passiert ;(

blackberry
11.07.2009, 21:56
Man programmiert einen Chat mit Sockets und nicht mit DownloadFile.

hackerking
11.07.2009, 21:59
Wo DownloadFile? Was meinste damit?
Das ist doch mit sockets oO

Ich will ja nur eine datei vom remote system downloaden...

blackberry
11.07.2009, 22:48
So wie ich das verstanden habe willst du die Nachrichten in einer Datei speichern, dann zum Gespächspartner schicken und dann verarbeiten.

Einen Chat schreibt man aber über Sockets, d.h. mit einem eigenen Netzwerkprotokoll.

hackerking
12.07.2009, 09:50
Nein...
Ich will Datein versenden also eine File-Verschicken Funktion..
Der Chat ist natürlich über Sockets...

blackberry
12.07.2009, 09:56
Dann sich doch einen "Header" mit, der die Länge der Datei angibt und häng den Inhalt hinten dran.

Sagen wir mal so:

[NamensLänge]
[DateiLänge]
[HIER DER NAME - "NamensLänge" Bytes lang]
[HIER DER INHALT - "DateiLänge" Bytes lang]

hackerking
12.07.2009, 10:13
ok und was soll das bringen? ich meine das macht ja wieder keinen unterschied...
namen brauch ich nicht, und dateilänge schick ich mit...