private void ThreadStartListening() { int ErrorCount = 0; do { try { if (TcpClient.Available > -1) { string PackageString = Reader.ReadLine(); if (!string.IsNullOrWhiteSpace(PackageString)) { ThreadPool.QueueWorkItem(() => { Package Package = new Package(PackageString, TcpClient); if (Package.IsValid) Package.Handle(); Core.Logger.Debug($"Receive: {PackageString}", TcpClient); }); ErrorCount = 0; } else { ErrorCount++; if (ErrorCount > 10) { Core.Logger.Debug("Too much error received from the client.", TcpClient); throw new Exception("Too much error received from the client."); } } } else { Core.Logger.Debug("Unexpected error occured.", TcpClient); throw new Exception("Unexpected error occured."); } } catch (Exception) { if (IsActive) { IsActive = false; Dispose(); } } } while (IsActive); }
private void ThreadAcceptTcpClient(TcpClient Client) { try { if (Client != null) { StreamReader Reader = new StreamReader(Client.GetStream()); string ReturnMessage = Reader.ReadLine(); if (!string.IsNullOrWhiteSpace(ReturnMessage)) { Package Package = new Package(ReturnMessage, Client); Core.Logger.Log($"Receive: {ReturnMessage}", Logger.LogTypes.Debug, Client); if (Package.IsValid) { Package.Handle(); } } } } catch (Exception) { } }
private void ThreadHandlePackage(Package p) { p.Handle(); }