Hi,
ich habe ein Problem mit TCP. Wenn ich meinen TCP-Server im Browser annavigiere, bekomme ich wie normal das HTTP-Protokoll in meinen Logs zu sehen, wenn ich dann in Firefox jedoch die Verbindung abbreche, dann kommen nurnoch leere Zeilen, bis jetzt habe ich dies mittels einer If-Abfrage unterbunden, jedoch ist es nicht die richtige Lösung des Problems.
Der Code ist aus einem Tutorial.
Das Ganze funktioniert soweit ganz gut, nur wenn die Verbindung verlassen wird ( mittels HTTP ) kommen extrem viele leere Dinge in meine Logs.
Es muss also irgendwie abgefragt werden können, ob die Verbindung mit dem Client noch besteht, jedoch funktioniert dies nicht mittels client.connected.
Habt ihr vielleicht eine andere Lösung?
MfG,
Begleiterkubus.
ich habe ein Problem mit TCP. Wenn ich meinen TCP-Server im Browser annavigiere, bekomme ich wie normal das HTTP-Protokoll in meinen Logs zu sehen, wenn ich dann in Firefox jedoch die Verbindung abbreche, dann kommen nurnoch leere Zeilen, bis jetzt habe ich dies mittels einer If-Abfrage unterbunden, jedoch ist es nicht die richtige Lösung des Problems.
Der Code ist aus einem Tutorial.
VB.NET-Quellcode
- Imports System.Net.Sockets
- Imports System.IO
- Imports System.Net
- Public Class frmTCPServer
- 'Variablen:
- Dim stream As NetworkStream
- Dim streamw As StreamWriter
- Dim streamr As StreamReader
- Dim Server As TcpListener
- Dim client As New TcpClient
- Dim ipendpoint As IPEndPoint = New IPEndPoint(IPAddress.Any, 4000)
- Dim mainthread As Threading.Thread
- '______________
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- mainthread = New Threading.Thread(AddressOf mainserver)
- mainthread.Start()
- End Sub
- Sub mainserver()
- Try
- Server = New TcpListener(ipendpoint)
- Server.Start()
- client = Server.AcceptTcpClient
- stream = client.GetStream
- streamr = New StreamReader(stream)
- streamw = New StreamWriter(stream) ' Müsste eigentlich alles Klar sein.
- While client.Client.Connected
- If Not streamr.ReadLine = "" Then
- lstboxLog.Items.Add(TimeOfDay() & " << " & streamr.ReadLine)
- End If
- End While
- Catch
- ' Hier wieder eine Fehler behandlung und ein neuen Versuch den Server zu starten...
- End Try
- End Sub
- Private Sub Form1__close(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.FormClosing
- Server.Stop()
- End
- Try
- mainthread.Abort()
- Catch
- End Try
- End Sub
- End Class
Das Ganze funktioniert soweit ganz gut, nur wenn die Verbindung verlassen wird ( mittels HTTP ) kommen extrem viele leere Dinge in meine Logs.
Es muss also irgendwie abgefragt werden können, ob die Verbindung mit dem Client noch besteht, jedoch funktioniert dies nicht mittels client.connected.
Habt ihr vielleicht eine andere Lösung?
MfG,
Begleiterkubus.