コード例 #1
0
ファイル: Broadcaster.cs プロジェクト: caddeo/Auktionshuset
 public void SetAuction(Auction auction)
 {
     foreach (ClientHandler client in _clients)
     {
         client.SetAuction(auction);
     }
 }
コード例 #2
0
ファイル: ClientHandler.cs プロジェクト: caddeo/Auktionshuset
        public ClientHandler(Socket clientSocket, Broadcaster broadcaster)
        {
            this._clientSocket = clientSocket;
            this._broadcaster = broadcaster;

            this._disconnected = false;

            _auction = null;

            /* Udskriver IP'en */
            string clientIp = clientSocket.RemoteEndPoint.ToString();

            client = new Client(clientIp);
            _broadcaster.Clients.Add(client);

            Console.WriteLine(clientIp +"("+client.Name+") connected");
        }
コード例 #3
0
ファイル: Server.cs プロジェクト: caddeo/Auktionshuset
        private void HandleInput()
        {
            while (_running)
            {
                Console.WriteLine("Server klar til input");
                string input = Console.ReadLine();

                try
                {
                    switch (input?.Trim().ToUpper())
                    {
                        case "NEW":
                            if (_auction == null)
                            {
                                bool inputrunning = true;

                                while (inputrunning)
                                {
                                    Console.WriteLine("Auction's navn:");
                                    string name = Console.ReadLine();

                                    Console.WriteLine("Auction's beskrivelse:");
                                    string description = Console.ReadLine();

                                    Console.WriteLine("Auction's estimerede pris:");
                                    double estimatedprice = double.Parse(Console.ReadLine());

                                    Console.WriteLine("Auction's pris:");
                                    double currentprice = double.Parse(Console.ReadLine());

                                    Auction auction = new Auction(name, description, estimatedprice, currentprice, null);

                                    _auction = auction;

                                    ConnectClients();
                                    _broadcaster.SetAuction(auction);

                                    _auction.Timer.Elapsed += OnTimedEvent;
                                    inputrunning = false;
                                }
                            }
                            else
                            {
                                Console.WriteLine("Auktion allerede i gang");
                            }
                            break;
                        case "STOP":
                            StopAuction();
                            break;
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine("HandleInput() " + e.Message);
                }
            }
        }
コード例 #4
0
ファイル: Server.cs プロジェクト: caddeo/Auktionshuset
        private void StopAuction()
        {
            _auction.Timer.Stop();
            _auction = null;
            _broadcaster.SetAuction(null);

            _broadcaster.Broadcast("MESSAGE");
            _broadcaster.Broadcast("Auktion stoppet af serveren");
        }
コード例 #5
0
ファイル: ClientHandler.cs プロジェクト: caddeo/Auktionshuset
 public void SetAuction(Auction auction)
 {
     _auction = auction;
 }