String
Erfahrenes Mitglied
Hallo zusammen,
ich bastle gerade an einem Multi-User Socket Server.
Aber ich habe da noch zwei grundlegende Fragen:
1) Lasse ich den Client-Server stream die ganze Zeit geöffnet oder öffne ich ihn "immer wieder", nur dann wenn ich Daten senden will?
2) Wie kann ich den Stream richtig schließen, wenn der Client sich einfach schließt ohne den Stream vorher zu beenden?
Zu 2):
Aktuell sieht der Client-Thread so aus:
DIe Funktion Client.lesen sieht so aus:
Schließt der Client das Programm ohne den Stream zu beenden, merkt der Server nicht, dass der Client nicht mehr erreichbar ist..
Kann mir da jemand einen Tipp geben, wie ich das richtig löse?
Beste Grüße und Dank im Voraus.
paD
ich bastle gerade an einem Multi-User Socket Server.
Aber ich habe da noch zwei grundlegende Fragen:
1) Lasse ich den Client-Server stream die ganze Zeit geöffnet oder öffne ich ihn "immer wieder", nur dann wenn ich Daten senden will?
2) Wie kann ich den Stream richtig schließen, wenn der Client sich einfach schließt ohne den Stream vorher zu beenden?
Zu 2):
Aktuell sieht der Client-Thread so aus:
Code:
texte("Neuer Client gestartet")
Dim weiter As Integer
Do
weiter = vclient.lesen()
If weiter = 1 Then
Exit Do
End If
Loop
vclient.stream.Close()
clients.Remove(vclient)
texte("Client geschlossen")
DIe Funktion Client.lesen sieht so aus:
Code:
Try
If stream.CanRead Then
Dim bytes(Form1.clientStream.ReceiveBufferSize) As Byte
stream.Read(bytes, 0, CInt(Form1.clientStream.ReceiveBufferSize))
Dim clientdata As String = Encoding.ASCII.GetString(bytes)
Return 0
Else
Return 1
End If
Catch ex As Exception
Return 1
End Try
Schließt der Client das Programm ohne den Stream zu beenden, merkt der Server nicht, dass der Client nicht mehr erreichbar ist..
Kann mir da jemand einen Tipp geben, wie ich das richtig löse?
Beste Grüße und Dank im Voraus.
paD