diff --git a/ClientServerLib/ClientServerLib/CClient.cs b/ClientServerLib/ClientServerLib/CClient.cs index 41347cf3..fe8b4a58 100644 --- a/ClientServerLib/ClientServerLib/CClient.cs +++ b/ClientServerLib/ClientServerLib/CClient.cs @@ -33,12 +33,6 @@ namespace ClientServerLib get { return connected; } } - public bool LoggedIn - { - get { return connection.LoggedIn; } - set { connection.LoggedIn = value; } - } - public CClient() { doConnect = false; diff --git a/ClientServerLib/ClientServerLib/CConnection.cs b/ClientServerLib/ClientServerLib/CConnection.cs index 50aa3460..900a4366 100644 --- a/ClientServerLib/ClientServerLib/CConnection.cs +++ b/ClientServerLib/ClientServerLib/CConnection.cs @@ -18,7 +18,6 @@ namespace ClientServerLib private int connectionID; public TcpClient TcpClient; - public bool LoggedIn; public bool KeySet { @@ -34,7 +33,6 @@ namespace ClientServerLib { TcpClient = client; keySet = false; - LoggedIn = false; connectionID = ConnectionID; encoder = new UTF8Encoding(); } diff --git a/ClientServerLib/ClientServerLib/CServer.cs b/ClientServerLib/ClientServerLib/CServer.cs index 24e54557..37f44139 100644 --- a/ClientServerLib/ClientServerLib/CServer.cs +++ b/ClientServerLib/ClientServerLib/CServer.cs @@ -73,28 +73,39 @@ namespace ClientServerLib private void ListenForClients() { tcpListener.Start(); + TcpClient client; while (running) { //wait for new client - TcpClient client = tcpListener.AcceptTcpClient(); - - int id = ids.Dequeue(); - CConnection connection = new CConnection(client, id); - - lock (clients) + try { - clients.Add(id, connection); + client = tcpListener.AcceptTcpClient(); + } + catch + { + client = null; } - Thread clientThread = new Thread(new ParameterizedThreadStart(HandleClientCom)); + if (client != null) + { + int id = ids.Dequeue(); + CConnection connection = new CConnection(client, id); - NetworkStream clientStream = client.GetStream(); - byte[] serverParams = connection.GetKeyParams(); - clientStream.Write(serverParams, 0, serverParams.Length); - clientStream.Flush(); + lock (clients) + { + clients.Add(id, connection); + } - clientThread.Start(connection); + Thread clientThread = new Thread(new ParameterizedThreadStart(HandleClientCom)); + + NetworkStream clientStream = client.GetStream(); + byte[] serverParams = connection.GetKeyParams(); + clientStream.Write(serverParams, 0, serverParams.Length); + clientStream.Flush(); + + clientThread.Start(connection); + } } } diff --git a/ClientServerLib/ClientServerLib/ClientServerLib.csproj b/ClientServerLib/ClientServerLib/ClientServerLib.csproj index 90c0aa91..b9a347bb 100644 --- a/ClientServerLib/ClientServerLib/ClientServerLib.csproj +++ b/ClientServerLib/ClientServerLib/ClientServerLib.csproj @@ -48,6 +48,8 @@ + +