vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Problem bei Winsock daten versand 
Autor: da.lohse
Datum: 26.03.08 19:57

hey,

da ich einen datenversand von winsock suchte bin ich auf diesen beitrag hier gestoßen:
http://www.vbarchiv.net/archiv/tipp_1070.html

so, habe mir gleich abgekritztelt und gaaanz wenig verändert (glaub dateinamen oda so)
so, ich bin am verzweifeln. kein fehler, kein garnichts. jedoch: beim absendeformular gehn alle Bytes raus (kann ich ja per label kontrollieren), jedoch beim empfängerform kommen nur 1024 an oO. danach is die datei (mit 1024 bytes) auf meiner festplatte vorhanden.

hab schon alle variablen gecheckt, is niergenst ein fehler. ich kapier das ech nicht mehr...

hier einmal der absendeform code:
Private Sub Command2_Click()
 
 
Dim F As Integer
  Dim sBuffer As String
  Dim nFileSize As Long
  Dim nFilePos As Long
  Dim nBytesToRead As Long
 
  ' Größe der einzelnen Datenpakete
  Const BlockSize = 1024
 
  ' Datei im Binary-Mode öffnen
  F = FreeFile
  sFile = "C:\\test.mp3"
  Open sFile For Binary As #F
 
  ' Dateiname extrahieren
  If InStr(sFile, "\") > 0 Then
    sFile = Mid$(sFile, InStrRev(sFile, "\") + 1)
  End If
 
  ' Dateigröße
  nFileSize = LOF(F)
 
  ' Sendevorgang starten
  With ws
    ' Empfänger mitteln, welche Datei und wieviele
    ' Daten gesendet werden
    .SendData "<begin size=" & CStr(nFileSize) & ";" & sFile & ">"
 
    ' Datei blockweise senden
    Do While nFilePos < nFileSize
      nBytesToRead = BlockSize
      If nFilePos + nBytesToRead > nFileSize Then
        nBytesToRead = nFileSize - nFilePos
      End If
 
      ' Datenblock lesen
      sBuffer = Space$(nBytesToRead)
      Get #F, , sBuffer
 
      ' Datenblock senden
      .SendData sBuffer
 
      ' Fortschritt aktualisieren
      nFilePos = nFilePos + nBytesToRead
      status.Caption = CStr(nFilePos) + " von " + CStr(nFileSize) + " Bytes" & _
        "versandt"
 
      ' Wichtig!
      DoEvents
    Loop
  End With
 
  ' Datei schließen (Sendevorgang beendet)
  Close #F
End Sub
empfängerform code:

Private Sub ws_DataArrival(ByVal bytesTotal As Long)
  Dim sData As String
  Dim sTemp As String
  Static sFile As String
 
  ' Daten holen
  ws.GetData sData, vbString
 
  If Left$(sData, 12) = "<begin size=" Then
    ' Aha... eine neue Datei wird gesendet
    sData = Mid$(sData, 13)
    sTemp = Left$(sData, InStr(sData, ">") - 1)
    sData = Mid$(sData, InStr(sData, ">") + 1)
 
    ' Dateigröße und Dateiname ermitteln
    If InStr(sTemp, ";") > 0 Then
      nBytesTotal = Val(Left$(sTemp, InStr(sTemp, ";") - 1))
      sFile = Mid$(sTemp, InStr(sTemp, ";") + 1)
 
    Else
      nBytesTotal = Val(sTemp)
    End If
 
    ' Falls kein Dateiname angegeben wurde,
    ' Daten unter "temp.dat" speichern
    If Len(sFile) = 0 Then sFile = "temp.dat"
 
    ' ggf. Datei löschen, falls bereits existiert
    On Error Resume Next
    Kill App.Path & "\" & sFile
    On Error GoTo 0
 
    ' Datei im Binary-Mode öffnen
    nFile = FreeFile
    Open "D:\\" & sFile For Binary As #nFile
 
    ' bisher gelesene Bytes zurücksetzen
    nBytesRead = 0
  End If
 
  If Len(sData) > 0 And nFile > 0 Then
    ' bisher empfangene Daten...
    nBytesRead = nBytesRead + Len(sData)
 
    ' Daten in Datei speichern
    Put #nFile, , sData
 
    ' evtl. Fortschritt anzeigen
    Label1.Caption = CStr(nBytesRead) & " von " & CStr(nBytesTotal) & " Bytes" & _
      "empfangen"
 
    ' Wenn alle Bytes empfangen wurden, Datei schließen
    If nBytesRead = nBytesTotal Then
    MsgBox "fertig"
      Close #nFile
      nFile = 0
    End If
  End If
End Sub
für jene die schreiben: "ja, vl funktioniert dein winsock modul nicht": doch, tut es einwandfrei, is nicht das erste mal das ich damit arbeite ;)

ich denke es is irgendein furz-fehler, da der code ja auch nicht von mir, vl kann mir ja jemand helfen.

dankeschön =)

lg
da.lohse
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Problem bei Winsock daten versand1.040da.lohse26.03.08 19:57
Re: Problem bei Winsock daten versand587ModeratorDieter31.03.08 08:43
Re: Problem bei Winsock daten versand570da.lohse31.03.08 17:50
Re: Problem bei Winsock daten versand575Paul Schäfer01.04.08 09:57
Re: Problem bei Winsock daten versand595da.lohse02.04.08 18:03
Re: Problem bei Winsock daten versand581Paul Schäfer03.04.08 09:41
Re: Problem bei Winsock daten versand591da.lohse03.04.08 09:49

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel