vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 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

VB.NET - Fortgeschrittene
Re: Datei über TCP senden 
Autor: MeisterEngel
Datum: 12.11.05 15:33

Dann hab ich wieder das Problem, dass der Client nicht weiss, dass er eine Datei bekommt, da ich ja beim senden den Prefix file|filename| senden und dann komm die Daten angehängt.

Ich muss also file|filename| auslesen können beim Empfang und die Binärendaten sollen einfach nur weggeschrieben werden.

Beim Server sieht es nun so aus:

Public Sub sendFile(ByVal client As Socket)
        Dim filename As String = "Sonnenuntergang.jpg"
        Dim FStream As New FileStream("C:\Dokumente und Einstellungen\All" & _
          "Users\Dokumente\Eigene Bilder\Beispielbilder\" & filename, _
          FileMode.Open, FileAccess.Read, FileShare.Read)
        Dim SReader As New StreamReader(FStream)
        Dim Buffer() As Byte
        Dim filedata As String = "file|" & filename & "|" & FStream.Read( _
          Buffer, 0, FStream.Length - 1)
 
        Dim laenge As String = filedata.Length + _
          filedata.Length.ToString.Length + 2
        Dim data As String = "incomingfile|" & laenge
 
        Dim sendData As String = "$" & data.Length & "$" & data
        Dim message() As Byte = Encoding.ASCII.GetBytes(sendData)
        client.Send(message)
 
        'die Datei senden
        Dim sendFile As String = "$" & data.Length & "$" & filedata
        Dim messageFile() As Byte = Encoding.ASCII.GetBytes(sendFile)
        client.Send(messageFile)
    End Sub
Der Client empfängt so:

Private Sub receive()
        Dim countBytesFromServer As Int32
 
        While True
 
            countBytesFromServer = server.Receive(bytes)
 
            Dim bytesFromServer As String = Encoding.ASCII.GetString(bytes, 0, _
                                            countBytesFromServer)
 
            Console.WriteLine("Nachricht vom Client erhalten: " & _
              bytesFromServer)
            'erstes "$" entfernen
            If bytesFromServer.StartsWith("$") Then
                bytesFromServer = bytesFromServer.Substring(1)
            End If
 
            Dim input() As String = bytesFromServer.Split("$")
            For k As Int32 = 1 To input.Length - 1 Step 2
                Me.datenauswertung(input(k))
            Next
        End While
 
    End Sub
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Datei über TCP senden6.970MeisterEngel12.11.05 14:31
Re: Datei über TCP senden3.906ModeratorDaveS12.11.05 14:46
Re: Datei über TCP senden4.253MeisterEngel12.11.05 15:33
Re: Datei über TCP senden3.832ModeratorDaveS12.11.05 17:37
Re: Datei über TCP senden3.913MeisterEngel12.11.05 18:41
Re: Datei über TCP senden5.573ModeratorDaveS12.11.05 20:22
Re: Datei über TCP senden3.795MeisterEngel12.11.05 23:32
Re: Datei über TCP senden3.813ModeratorDaveS13.11.05 10:00
Re: Datei über TCP senden3.748MeisterEngel13.11.05 10:10
Re: Datei über TCP senden3.633MeisterEngel14.11.05 16:11
Re: Datei über TCP senden3.578ModeratorDaveS14.11.05 17:16
Re: Datei über TCP senden3.580MeisterEngel14.11.05 18:21
Re: Datei über TCP senden3.638ModeratorDaveS14.11.05 18:26
Re: Datei über TCP senden3.687Fabian Stern15.11.05 14:47
Re: Datei über TCP senden3.708ModeratorDaveS15.11.05 15:11
Re: Datei über TCP senden3.600MeisterEngel15.11.05 17:35

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