static void Main(string[] args) { try { IPEndPoint socket = new IPEndPoint(IPAddress.Loopback, int.Parse(ConfigurationManager.AppSettings.Get("portNo"))); TcpListener server = new TcpListener(socket); TcpClient clientSocket = default(TcpClient); int counter = 0; server.Start(); Console.WriteLine("Server Started at " + socket.Address + ":" + socket.Port); counter = 0; Console.WriteLine("Press 'E' to exit.."); while ((true)) { counter += 1; clientSocket = server.AcceptTcpClient(); Console.WriteLine("Client No:" + counter + " started!"); HandleClinet client = new HandleClinet(); client.startClient(clientSocket, Convert.ToString(counter)); } } catch { } }
/// <summary> /// Establishes server connection /// </summary> public static void ServerConnection() { // Starts the application and starts listening for clients. var serverSocket = new TcpListener(IPAddress.Any, 8888); var newClient = new HandleClinet(); int counter = 0; serverSocket.Start(); Console.WriteLine(" >> " + "Server Started"); _timeValues = ValueLogic.GetTimeValues(); Time = _timeValues.CurrentTime; EndTime = _timeValues.EndTime; Clock.SetDate(Time, Speed); var serverInputThread = new Thread(ServerInput); serverInputThread.Start(); // Detects client and opens socket. Makes a thread for the client and keeps listening for other clients afterwards. while (true) { // Listens for clients. TcpClient clientSocket = serverSocket.AcceptTcpClient(); // Checks if no other clients has connected. if (counter == 0) { newClient.NextClient = newClient; _client = newClient; Console.WriteLine(" >> " + "Client connected!"); counter++; _client.StartClient(clientSocket); } else { // Checks if a client has disconnected. HandleClinet dcClient = _client.NextClient; while (dcClient != _client) { if (dcClient.Disconnected) { break; } dcClient = dcClient.NextClient; } // Reconnects client if it has disconnected. if (dcClient.Disconnected) { dcClient.Disconnected = false; HandleClinet tempClients = _client.NextClient; while (tempClients.NextClient != dcClient) { tempClients = tempClients.NextClient; } tempClients.NextClient = dcClient; _client = tempClients.NextClient; Console.WriteLine(" >> " + "Client reconnected!"); _client.StartClient(clientSocket); } // Adds new client. else { newClient = new HandleClinet { NextClient = _client }; HandleClinet temp = newClient.NextClient; while (temp.NextClient != newClient.NextClient) { temp = temp.NextClient; } temp.NextClient = newClient; _client = newClient; Console.WriteLine(" >> " + "Client connected!"); counter++; _client.StartClient(clientSocket); } } } }