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:
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