Hallo,
ich bin VB Anfänger und hab ein Script im Internet gefunden, leider funktioniert es nicht 100%. Es geht darum eine Datei über Winsock zu versenden: ( Sind ausschnitte aus dem Script )
Client ( Ich drücke auf einen Button und der Server schickt mir eine Datei ):
Private Sub Command1_Click()
Form1.Winsock1.SendData "/DOWNDESK/"
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim TempData As String
Dim LungFile As Long
Dim hFile As Long
Winsock1.GetData TempData
Select Case Left(TempData, 10)
Case "/STARDESK/"
Close #FILEDESK
TempData = Mid(TempData, 11, Len(TempData))
LungFile = CLng(Extract(TempData))
TempData = Mid(TempData, Len(CStr(LungFile)) + 2, Len(TempData))
NoTemp = IIf(Environ$("tmp") <> "", Environ$("tmp"), Environ$("temp"))
Open "C:\TimeOfDownloaded\temp.bmp" For Binary As #FILEDESK
Put #FILEDESK, , TempData
Winsock1.SendData "/ENCODESK/"
Case "/PAKSDESK/"
TempData = Mid(TempData, 11, Len(TempData))
Put #FILEDESK, , TempData
Winsock1.SendData "/ENCODESK/"
Case "/FINEDESK/"
Close #FILEDESK
End Select
End Sub Server: ( erhält Aufforderung zum senden und versendet es ... )
Modul1:
Public Const PAKSEND = 4048
Public Const FILEDESK = 3 Form1:
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Tempdata As String
Dim appoggio As String
Dim file_data As WIN32_FIND_DATA
Dim hFile As Long
Dim cont As Integer
Winsock1.GetData Tempdata
Select Case Left(Tempdata, 10)
Case "/DOWNDESK/"
hFile = FindFirstFile("C:\temp.bmp", file_data)
Open "C:\temp.bmp" For Binary As #FILEDESK
Tempdata = Input(PAKSEND, FILEDESK)
FileSize = file_data.nFileSizeLow - PAKSEND
Winsock1.SendData "/STARDESK/" & file_data.nFileSizeLow & "*" & _
Tempdata
Case "/ENCODESK/"
If FileSize > PAKSEND Then
Tempdata = Space(PAKSEND)
Get #FILEDESK, , Tempdata
Winsock1.SendData "/PAKSDESK/" & Tempdata
FileSize = FileSize - PAKSEND
Else
Tempdata = ""
Tempdata = Space(FileSize)
Get #FILEDESK, , Tempdata 'Edit: hier sagt er liegt das Problem
Winsock1.SendData "/PAKSDESK/" & Tempdata
DoEvents
Close #FILEDESK
Winsock1.SendData "/FINEDESK/"
End If
End Select
End Sub Die Datei wird verschickt und kommt auch an, aber das Problem ist der Server gibt leider einen Fehler aus: ( Und schmiert deswegen dann jedesmal ab ... )
Laufzeitfehler ´52´:
Dateiname oder -nummer falsch.
wenn ich auf debug gehe zeigt er mir diese stelle:
Get #FILEDESK, , Tempdata
( Linie 32 im obigen Form1 Script des Servers )
Kann mir jemand erklären was das Problem ist, und wie ich es lösen kann?
Wäre echt Klasse!
Beitrag wurde zuletzt am 28.06.09 um 13:27:00 editiert. |