Bezug: [VB.NET] VersuchsChat mit leistungsfähigem Server
Hallo Zusammen,
ich habe noch ein kleines Problem mit dem VersuchsChat vom ErfinderdesRad...
Ich habe festgestellt - wenn mehrere Clients an den Server verbunden sind (ca. 200) - dann verliert manchmal ein Client übers Internet die Verbindung. Eine Sekunde später verbindet sich der Client sofort wieder.
Ich habe bereits ein ReadTimeout auf 5000ms gesetzt, aber bei der asynchronen Methode zieht dieser ja nicht.
Wie kann ich jetzt in dem Block einen ReadTimeout setzen, damit mir die
"if read=0" - Funktion nicht sofort den Client killt. ??? ?(
Danke schonmal im Voraus...
Viele Grüsse...
Hallo Zusammen,
ich habe noch ein kleines Problem mit dem VersuchsChat vom ErfinderdesRad...
Ich habe festgestellt - wenn mehrere Clients an den Server verbunden sind (ca. 200) - dann verliert manchmal ein Client übers Internet die Verbindung. Eine Sekunde später verbindet sich der Client sofort wieder.
Ich habe bereits ein ReadTimeout auf 5000ms gesetzt, aber bei der asynchronen Methode zieht dieser ja nicht.
Wie kann ich jetzt in dem Block einen ReadTimeout setzen, damit mir die
"if read=0" - Funktion nicht sofort den Client killt. ??? ?(
VB.NET-Quellcode
- Private Sub EndRead(ByVal ar As IAsyncResult) If MyBase.IsDisposed Then Return
- Dim read As Integer = _Stream.EndRead(ar)
- If read = 0 Then 'leere Datenübermittlung signalisiert Verbindungsabbruch
- CrossThread.RunGui(AddressOf OnStatusMessage, New MessageEventargs("CounterClient shut down"))
- CrossThread.RunGui(AddressOf MyBase.Dispose)
- Return
- End If
- Dim SB As New StringBuilder(Encoding.UTF8.GetString(Buf, 0, read))
- Do While _Stream.DataAvailable
- read = _Stream.Read(Buf, 0, Buf.Length)
- SB.Append(Encoding.UTF8.GetString(Buf, 0, read))
- Loop
- CrossThread.RunGui(AddressOf OnChatMessage, New MessageEventargs(SB.ToString))
- _Stream.BeginRead(Buf, 0, Buf.Length, AddressOf EndRead, Nothing)
- End Sub
Danke schonmal im Voraus...
Viele Grüsse...
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „EntU“ ()