Mehrere Dateien mittels Websocket hintereinander versenden

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Kevin Hombre.

    Mehrere Dateien mittels Websocket hintereinander versenden

    Hallo,

    ich versuche jetzt schon seit einigen Tagen mehrere Bilder mit Hilfe der System.Net.Sockets.Socket Klasse zu versenden. Das Problem ist nur das die Bilder vom Empfänger nicht immer richtig auseinander gehalten werden. Zum Test verschicke ich 10mal das gleiche Bild. Ein Teil der Bilder sind fehlerfrei und haben die korrekte Größe (33,9KB). Andere sind zwar auch fehlerfrei, aber größer (52,2KB oder 62,8KB). Und der Rest der Bilder ist dann entweder nur zur Hälfe sichtbar oder garnicht.
    Ich habe schon versucht zwischen dem Losschicken der einzelnen Bilder eine Wartezeit von 200ms zu setzen, was den Datentransfer aber nur verlangsamt und sonst nix ändert.

    Code vom Empfänger:

    VB.NET-Quellcode

    1. For i As Integer = 0 to 10
    2. Dim Data(1024) As Byte
    3. Dim length As Integer
    4. SendMessage("....") 'Sendet die Anfrage an den Server und bewirkt den Aufruf von SendImage()
    5. Using fs As New FileStream("bild_" & i & ".jpg", FileMode.OpenOrCreate)
    6. Do
    7. length = ServerConnection.Receive(Data) 'ServerConnection As System.Net.Sockets.Socket
    8. fs.Write(Data, 0, length)
    9. Loop While length >= 1024
    10. fs.Flush()
    11. fs.Close()
    12. End Using
    13. Next




    Code vom Sender:

    VB.NET-Quellcode

    1. Private Sub SendImage(ByVal path As String)
    2. Dim Data() As Byte
    3. Dim fs As New System.IO.FileStream(path, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read)
    4. Dim sr As New System.IO.StreamReader(fs)
    5. Data = New Byte(fs.Length - 1) {}
    6. fs.Read(Data, 0, fs.Length)
    7. fs.Flush()
    8. ClientSocket.Send(Data)
    9. fs.Close()
    10. sr.Close()
    11. End Sub