vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 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

Visual-Basic Einsteiger
winsock 
Autor: güti
Datum: 31.12.05 00:42

hallo,
ich hab nach folgendem tut: http://www.vbarchiv.net/archiv/tipp_details.php?pid=1070
folgendes geschireben:
Client
...
            Public Sub SendBinary(ByVal sFile As String)
 
 
  ' Größe der einzelnen Datenpakete
  Const BlockSize = 1024
 
  ' Datei im Binary-Mode öffnen
  F = FreeFile
  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 winsock
    ' 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
      txtStatusSend.Text = CStr(nFilePos) + " von " + CStr(nFileSize) + " Bytes" & _
        "versandt"
 
      ' Wichtig!
      DoEvents
    Loop
  End With
 
  ' Datei schließen (Sendevorgang beendet)
  Close F
End Sub
Private Sub cmdSend_Click()
 
  ' Bild-Datei senden
  SendBinary "e:\1.JPG"
End Sub
SERVER
...
 Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)
 
                        ' für den Empfangsvorgang
                        Dim nBytesTotal As Long
                        Dim nBytesRead As Long
                        Dim nFile As Integer
                          Dim sData As String
                          Dim sTemp As String
                          Static sFile As String
 
                          ' Daten holen
                          winsock.GetData sData, vbString
                          log.Text = log.Text & vbNewLine & sData
                          If Left$(sData, 12) = "<begin size=" Then
                              ' Aha... eine neue Datei wird gesendet
                              MsgBox ("da kommt was")
                              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 App.Path & "\" & 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
                            'txtStatusRecieve.Text = CStr(nBytesRead) & " von " 
                            ' & CStr(nBytesTotal) & " Bytes empfangen"
 
                            ' Wenn alle Bytes empfangen wurden, Datei schließen
                            If nBytesRead = nBytesTotal Then
                              Close #nFile
                            End If
                        End If
                        End Sub
und das klappt in sofern das die ersten 1024 byte übertragen werden und dann is schluss. wo liegt der fehler?

mfg güti
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
winsock414güti31.12.05 00:42
Re: winsock259ICE-MAN31.12.05 12:12
Re: winsock329güti01.01.06 17:17

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