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

VB.NET - Ein- und Umsteiger
Re: Wie kann ich zwei Streams verschachteln? 
Autor: Tomarr
Datum: 09.02.06 15:47

Hmmm, funktioniert nicht. Die Fehlermeldungen sind jetzt auch so komplex das ich sie gar nicht wiedergeben kann.

Ich meine ich bin mir sicher dass da irgendwas Asynchorn läuft. Also irgendwo sende ich was wo ich empfangen muss, oder umgekehrt.

Ich poste einfach mal den kompletten Code, er ist zwar inzwischen wieder etwas unübersichtlich, weil ich so viel ausprobiert habe. Aber vielleicht ist es ja nur eine Kleinigkeit die ich da übersehe.

Code Sender:
        ' Variablen für ausgehende Daten
        Dim diOut As DirectoryInfo
        Dim fiOut As FileInfo()
        Dim fiTempOut As FileInfo
 
        ' Variablen für eingehende Daten    
        Dim theRequest As String = ""
 
        While True
            Try
                Listener = New TcpListener(Net.IPAddress.Any, setPort)
                Listener.Start()
 
                Connection = Listener.AcceptSocket()
                SocketStream = New NetworkStream(Connection, FileAccess.Read, _
                  True)
 
                Writer = New BinaryWriter(SocketStream)
                Reader = New BinaryReader(SocketStream)
 
                ' Verbindung bestätigen
                Writer.Write(ConnectOK)
                Try
                    theRequest = WaitForResponse()
                    Do
                        Select Case theRequest
                            ' Wenn aufgefordert wurde alle Dateien zu senden
                            Case SendFiles
                                diOut = New DirectoryInfo(setTransPath)
                                fiOut = diOut.GetFiles
                                For Each fiTempOut In fiOut
                                    Dim fn As String = fiTempOut.Name
                                    Dim fs As New FileStream(setTransPath & fn, _
                                      FileMode.Open)
                                    Dim b(fs.Length - 1) As Byte
                                    fs.Read(b, 0, b.Length)
                                    fs.Close()
                                    Writer.Write("SendFile")
                                    Writer.Write(fn)
                                    Writer.Write(CInt(b.Length))
                                    Writer.Write(b)
                                Next
                                Writer.Write(AllSend)
                        End Select
                        theRequest = WaitForResponse()
                    Loop While (theRequest <> Disconnect AndAlso _
                      Connection.Connected)
                Catch InputOutputException As Exception
                    BackgroundWorker1.ReportProgress(1, _
                      InputOutputException.ToString)
                Finally
                    Writer.Close()
                    Reader.Close()
                    SocketStream.Close()
                    Connection.Close()
                End Try
            Catch InputOutputException As Exception
                BackgroundWorker1.ReportProgress(1, InputOutputException)
            Finally
                Listener = Nothing
                Writer = Nothing
                Reader = Nothing
                SocketStream = Nothing
                Connection = Nothing
                Listener = Nothing
                theRequest = ""
            End Try
        End While
Code Empfänger:
        ' Variablen für einhehende Daten
        Dim theRequest As String
 
        client = New TcpClient
        client.Connect(SetIPAdress, setPort)
 
        'networkstream binden
        Stream = client.GetStream()
 
        Writer = New BinaryWriter(Stream)
        Reader = New BinaryReader(Stream)
        Try
            theRequest = WaitForResponse()
            If theRequest = ConnectOK Then
                Writer.Write(SendFiles)
                Do
                    Dim fn As String = Reader.ReadString()
                    Dim l As Integer = Reader.ReadInt32()
                    Dim b() As Byte = Reader.ReadBytes(l)
                    Dim fs As New FileStream(fn, FileMode.Create, _
                      FileAccess.Write, FileShare.None)
                    fs.Write(b, 0, l)
                    fs.Close()
                Loop While (client.Connected)
            End If
        Catch InputOutputException As Exception
            Anzeigen.AddToLog(InputOutputException.ToString)
        End Try
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Wie kann ich zwei Streams verschachteln?1.001Tomarr08.02.06 21:23
Re: Wie kann ich zwei Streams verschachteln?645Melkor09.02.06 12:07
Re: Wie kann ich zwei Streams verschachteln?623Tomarr09.02.06 13:24
Re: Wie kann ich zwei Streams verschachteln?624Melkor09.02.06 13:31
Re: Wie kann ich zwei Streams verschachteln?621Tomarr09.02.06 14:52
Re: Wie kann ich zwei Streams verschachteln?622Melkor09.02.06 14:59
Re: Wie kann ich zwei Streams verschachteln?624Tomarr09.02.06 15:22
Re: Wie kann ich zwei Streams verschachteln?645Melkor09.02.06 15:29
Re: Wie kann ich zwei Streams verschachteln?685Tomarr09.02.06 15:35
Re: Wie kann ich zwei Streams verschachteln?638Tomarr09.02.06 15:47
Re: Wie kann ich zwei Streams verschachteln?615Melkor09.02.06 17:05

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