| |

VB.NET - FortgeschritteneAnderer 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. |  |
 | 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 |
  |
|
Neu! sevEingabe 3.0 
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere InfosTipp des Monats Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
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
|
|