コード例 #1
0
ファイル: Connection.cs プロジェクト: pederjohnsen/Nimbus
        // The constructor of the class takes in a TCP connection
        public Connection(TcpClient tcpCon)
        {
            db = new DBAccess();
            _friends = new ArrayList();

            timer = new System.Timers.Timer(1000);
            timer.AutoReset = true;
            timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);

            tcpClient = tcpCon;
            Ip = ((IPEndPoint)tcpClient.Client.RemoteEndPoint).Address.ToString();
            // The thread that accepts the client and awaits messages

            thrSender = new Thread(AcceptClient);

            // The thread calls the AcceptClient() method

            thrSender.Start();
        }
コード例 #2
0
ファイル: Main.cs プロジェクト: pederjohnsen/Nimbus
        public static void Main(string[] args)
        {
            IPAddress ip = null;
            for (int i = 0; i < args.Length; i ++)
            {
                if (args[i] == "-ip") ip = IPAddress.Parse(args[i+1]);

            }

            if (ip != null)
            {

                Console.WriteLine(String.Format("Creating Server at: {0}" ,ip.ToString()));
                NexServer server = new NexServer(ip);

                Console.WriteLine("Listen.");
                server.Listen();
                Console.WriteLine("Listening.");
                bool serveron = true;
                while (serveron)
                {
                    string res = Console.ReadLine();
                    string[] split;

                    if (res.ToUpper() == "QUIT")
                    {
                        Console.WriteLine("Quitting");
                        serveron = false;
                        server.KillServer();
                        server = null;

                    }
                    else if (res.ToUpper() == "LIST")
                    {
                        foreach (Connection conn in NexServer.Conns)
                        {

                         Console.WriteLine("{0} - {1}", conn.Ip , conn.User);

                        }

                    }
                    else if (res.ToUpper().StartsWith("SAY "))
                    {
                        split = res.Split(' ');
                        bool found = false; ;
                        foreach (Connection conn in NexServer.Conns)
                        {
                            if (conn.User == split[1])
                            {
                                conn.SendMessage(split[2]);
                                Console.WriteLine("Sending {0} to {1}", split[2], conn.User);
                                found = true;
                            }
                            if (!found) Console.WriteLine("User {0} not found", split[1]);
                        }
                    }
                    else if (res.ToUpper().StartsWith("USERID "))
                    {
                        split = res.Split(' ');
                        DBAccess db = new DBAccess();
                        Console.WriteLine("UserID for user {0} is {1}", split[1],db.GetUserID(split[1]));

                    }
                    else
                    {
                        if (NexServer.Conns.Count == 0) Console.WriteLine("No Current Connections.");
                        else
                        {
                            foreach (Connection conn in NexServer.Conns)
                            {
                                conn.SendMessage(res);
                            }
                        }
                    }
                }

            }
        }