コード例 #1
0
        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
            {
            }
        }
コード例 #2
0
        /// <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);
                    }
                }
            }
        }