public void StartListening(int port) { IPAddress addr = IPAddress.Parse("127.0.0.1"); InListener = InstanceProvider.InitTCPListener(addr, port); try { InListener.Start(); } catch { InstanceProvider.GetServiceLogger().AppendLine("Error! Port is occupied and cannot be opened... Program will be killed!"); Thread.Sleep(2000); Environment.Exit(1); } while (true) { try { client = InListener.AcceptTcpClient(); stream = client.GetStream(); InstanceProvider.InitClientService(new ThreadStart(IncomingListener)).Start(); InstanceProvider.InitHeartbeatThread(new ThreadStart(SendBackHeatbeatSignal)).Start(); } catch (ThreadStateException) { } catch (Exception e) { InstanceProvider.GetServiceLogger().AppendLine(e.ToString()); } } //listener.Stop(); }