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 - Fortgeschrittene
Anderer Code selbes Ergebnis 
Autor: Tomarr
Datum: 03.02.06 03:56

Ich habe den Code nach einigen Studien der Hilfedatei und des Forums nochmal überarbeitet. Ich habe ein paar Veränderungen eingebaut bei denen ich dachte sie könnten richtig sein. Dummerweise war das Ergebnis noch immer das gleiche.

Client:
        ' Variablen für einhehende Daten
        Dim sFnIn As String
        Dim iIn As Integer
        Dim bBytesRecivedIn() As Byte
        Dim fsIn As FileStream
 
        client = New TcpClient
        client.Connect(SetIPAdress, setPort)
        Stream = client.GetStream()
 
        'networkstream binden
        Stream = client.GetStream()
 
        Writer = New BinaryWriter(Stream)
        Reader = New BinaryReader(Stream)
 
        Try
            If Reader.ReadString = ConnectOK Then
                Writer.Write(SendFiles)
                Do
                    ReDim bBytesRecivedIn(255)
                    sFnIn = Reader.ReadString
                    Anzeigen.AddToLog(sFnIn)
                    If sFnIn = AllSend Then
                        Exit Do
                    End If
                    iIn = Reader.ReadInt32
                    Anzeigen.AddToLog(CStr(iIn))
                    fsIn = New FileStream(setTransPath & sFnIn, _
                      FileMode.Create, FileAccess.Write)
                    While Connection.Receive(bBytesRecivedIn, SocketFlags.None)
                        fsIn.Write(bBytesRecivedIn, 0, iIn)
                    End While
                    fsIn = Nothing
                Loop While (client.Connected)
            End If
        Catch InputOutputException As Exception
            Anzeigen.AddToLog(InputOutputException.ToString)
        End Try
Server:
        ' Variablen für ausgehende Daten
        Dim fsOut As FileStream
        Dim bBytesSendOut As [Byte]()
        Dim bBufferSend As Integer
        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)
 
                Writer = New BinaryWriter(SocketStream)
                Reader = New BinaryReader(SocketStream)
 
                ' Verbindung bestätigen
                Writer.Write(ConnectOK)
                Try
                    Do
                        Select Case theRequest = Reader.ReadString
                            ' Wenn aufgefordert wurde alle Dateien zu senden
                            Case SendFiles
                                diOut = New DirectoryInfo(setTransPath)
                                fiOut = diOut.GetFiles
                                For Each fiTempOut In fiOut
                                    ReDim bBytesSendOut(255)
                                    fsOut = New FileStream(setTransPath & _
                                      fiTempOut.Name, FileMode.Open, _
                                      FileAccess.Read, FileShare.Read)
                                    Writer.Write(fiTempOut.Name)
                                    Writer.Write(fiTempOut.Length)
                                    While (bBufferSend = fsOut.Read( _
                                      bBytesSendOut, 0, fiTempOut.Length))
                                        Connection.Send(bBytesSendOut, _
                                        SocketFlags.None)
                                    End While
                                    fsOut = Nothing
                                Next
                                Writer.Write(AllSend)
                        End Select
                    Loop While (theRequest <> Disconnect AndAlso _
                      Connection.Connected)
                Catch ex As Exception
                    ' Fehler in der Übertragung
                Finally
                    Writer.Close()
                    Reader.Close()
                    SocketStream.Close()
                    Connection.Close()
                End Try
            Catch InputOutputException As Exception
                ' Ausnahme in der Übertragung
            Finally
                Listener.Stop()
                Writer = Nothing
                Reader = Nothing
                SocketStream = Nothing
                Connection = Nothing
                Listener = Nothing
                theRequest = ""
            End Try
        End While
Das Problem ist das in dem Moment wo der Client mit sFnIn = Reader.ReadString den übertragenen Dateinamen lesen soll, der auch entsprechend vom Server gesendet wir, immer EndOfFile als ausnahme-Fehler auftritt.

Wie kommt das? Vielleicht kann mir ja jemand bei dem etwas aufgeräumteren Code etwas helfen.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Nochmal zur Dateiübertragung per TCP/IP1.048Tomarr01.02.06 14:39
Anderer Code selbes Ergebnis793Tomarr03.02.06 03:56

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