예제 #1
0
        public void runningAuktion()
        {
            while (true)
            {
                if (Bet != 0)
                {
                    while (true)
                    {
                        Thread.Sleep(1000);

                        lock (lockObj)
                        {
                            gavelCount++;
                            if (gavelCount == 10)
                            {
                                BroadCasting.SendToAll("Gavel,Første gang");
                            }
                            else if (gavelCount == 15)
                            {
                                BroadCasting.SendToAll("Gavel,Anden gang");
                            }
                            else if (gavelCount == 18)
                            {
                                BroadCasting.SendToAll("Gavel,Tredje gang");
                                BroadCasting.SendToAll("Gavel,Solgt til " + LastBetter + " for " + Bet + " kr");
                                done = true;
                            }
                        }
                    }
                }
            }
        }
예제 #2
0
        public void Run()
        {
            Auktion     auktion  = new Auktion();
            TcpListener listener = new TcpListener(IPAddress.Any, 11000);

            listener.Start();
            TcpClient     newClient;
            ClientHandler clientHandler;

            while (true)
            {
                newClient = listener.AcceptTcpClient();
                Console.WriteLine("Client Connected !");
                clientHandler = new ClientHandler(newClient, auktion);
                BroadCasting.AddToList(clientHandler);
            }
        }
예제 #3
0
        public void HandleClient()
        {
            string newMessage;

            while (true)
            {
                try
                {
                    newMessage = sR.ReadLine();
                    string[] messageArray = newMessage.Split(',');
                    if (messageArray[0] == "chat")
                    {
                        Console.WriteLine(newMessage);
                        BroadCasting.SendToAll(newMessage);
                    }
                    else if (messageArray[0] == "bet")
                    {
                        if (auktion.done != true)
                        {
                            lock (auktion.lockObj)
                            {
                                if (int.Parse(messageArray[2]) > auktion.Bet)
                                {
                                    auktion.gavelCount = 0;
                                    auktion.Bet        = int.Parse(messageArray[2]);
                                    auktion.LastBetter = messageArray[1];
                                    string message = "bet," + messageArray[1] + "," + messageArray[2];
                                    BroadCasting.SendToAll(message);
                                }
                                else
                                {
                                    sW.WriteLine("Error,Ugyldigt Bud");
                                    sW.Flush();
                                }
                            }
                        }
                        else
                        {
                            sW.WriteLine("Gavel,Aktionen er s**t");
                            sW.Flush();
                        }
                    }
                    else if (messageArray[0] == "StartUp")
                    {
                        string message = "StartUp," + auktion.Item + "," + auktion.LastBetter + "," + auktion.Bet + "," + auktion.StartPrice;
                        sW.WriteLine(message);
                        sW.Flush();
                    }
                    else
                    {
                    }
                }

                catch (Exception e)
                {
                    Console.WriteLine("Client disconnected");
                    Console.WriteLine(e.Message);
                    BroadCasting.RemoveFromList(newClient);

                    clientThread.Abort();
                }
            }
        }