Server lässt nach Abbruch der WLAN Verbindung keine Verbindung mehr zu!

VanNameless

Grünschnabel
Hab da ein echt gemeines Problem !
Ich entwickle zur zeit eine art Fernbedienung für meinen Desktop PC mit der ich mit meinem Notebook via WLAN meinen Desktop PC steueren kann, bis jetzt funktioniert alles Perfekt, bis auf das wenn ich auf meinem Notebook den client via Taskmanager schließe um einen WLAN verbindungsabbruch zu simulieren der server dann keine eingehende verbindung mehr zulässt da er in der Zeile i = stream.Read(bytes, 0, bytes.Length) hängen bleibt. Das ist blöd da ja ein Server immer zu verfügung stehen muss und ich nicht immer hin laufen kann um ihn neu zu starten !

Ich würde mich sehr über Lösungsvorschläge freuen !

Hier der Server Code:

Code:
Imports System
Imports System.IO
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports Microsoft.VisualBasic

Module Server

    Sub Main()
 
        server_start()
        '  Console.WriteLine(ControlChars.Cr + "Hit enter to continue....")
        ' Console.Read()

    End Sub

    Sub server_start()
        Dim server As TcpListener
        server = Nothing
        Try
            ' Set the TcpListener on port 13000.
            Dim port As Int32 = 5000
            REM Dim localAddr As IPAddress = IPAddress.Parse("127.0.0.1")
            Dim localAddr As IPAddress = Dns.GetHostEntry(Dns.GetHostName()).AddressList(0)
            server = New TcpListener(localAddr, port)

            ' Start listening for client requests.

            server.Start()
            ' Buffer for reading data
            Dim bytes(1024) As Byte
            Dim data As String = Nothing

            ' Enter the listening loop.
            While True
                Console.Write("Waiting for a connection... ")

                ' Perform a blocking call to accept requests.
                ' You could also user server.AcceptSocket() here.
                Dim client As TcpClient = server.AcceptTcpClient()
                Console.WriteLine("Connected!")

                data = Nothing

                ' Get a stream object for reading and writing
                Dim stream As NetworkStream = client.GetStream()



                Dim i As Int32

                ' Loop to receive all the data sent by the client.
                i = stream.Read(bytes, 0, bytes.Length)

                ' stream.ReadTimeout = 10000
                'stream.WriteTimeout = 10000

                While (i <> 0)
                    ' Translate data bytes to a ASCII string.
                    data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)
                    Worker(data)
                    Console.WriteLine("Received: {0}", data)

                    ' Process the data sent by the client.
                    data = data.ToUpper()
                    Dim msg As Byte() = System.Text.Encoding.ASCII.GetBytes(data)

                    ' Send back a response.
                    stream.Write(msg, 0, msg.Length)
                    Console.WriteLine("Sent: {0}", data)

                    i = stream.Read(bytes, 0, bytes.Length)




                End While

                ' Shutdown and end connection

                client.Close()
            End While
        Catch e As SocketException

            Console.WriteLine("SocketException: {0}", e)

        Catch ex As IOException

            Console.WriteLine(ex.Message)
            server.Stop()
            server_start()

        Finally
            server.Stop()

        End Try
    End Sub

End Module
 

Neue Beiträge

Zurück