示例#1
0
        private static void joinTopicsManager(string username)
        {
            ChannelFactory <TopicsManager> dupFactory = null;
            TopicsManager clientProxy = null;

            dupFactory = new ChannelFactory <TopicsManager>(
                new NetTcpBinding(), new EndpointAddress("net.tcp://localhost:9000/TopicManager"));
            dupFactory.Open();
            clientProxy = dupFactory.CreateChannel();
            while (true)
            {
                Console.WriteLine("************TOPICS MANAGER************");
                Console.WriteLine("Liste des rooms diponibles : ");
                List <string> list = clientProxy.listTopics();
                foreach (var t in list)
                {
                    Console.WriteLine(t);
                }
                Console.WriteLine("1. Se connecter a une room \n2.Créer un nouveau chatroom");

                switch (Console.ReadLine())
                {
                case "1":
                    Console.WriteLine("Entrez le nom de la room");
                    joinChatroom(clientProxy.joinTopic(Console.ReadLine()), username);

                    break;

                case "2":
                    Console.WriteLine("Entrez le nom de la room");
                    clientProxy.createTopic(Console.ReadLine());
                    break;
                }
            }
        }
示例#2
0
        public void startClient(TcpClient inClientSocket, TopicsManager tm)
        {
            this.tm           = tm;
            this.clientSocket = inClientSocket;
            Thread ctThread = new Thread(Chat);

            ctThread.Start();
        }
        public void ShowTopicsManager()
        {
            var window = new TopicsManager();

            window.ShowDialog();

            SetFilter(window);
        }
示例#4
0
        static void Main(string[] args)
        {
            TopicsManager directory = new TopicsManager();

            NotesGenerator notes = new NotesGenerator(directory.GetDirectoryLocation("Notes"));

            notes.ChangeLocation(directory.GetDirectoryLocation("Main"));

            notes.AddNote();
            Console.Read();
        }
示例#5
0
        static void Main(string[] args)
        {
            TcpListener   ServerSocket = new TcpListener(IPAddress.Any, 25565);
            TopicsManager tm           = new TopicsManager();

            ServerSocket.Start();
            Console.WriteLine("Server started");
            while (true)
            {
                TcpClient clientSocket = ServerSocket.AcceptTcpClient();
                Console.WriteLine("New client");
                handleClient client = new handleClient();
                client.startClient(clientSocket, tm);
            }
        }
示例#6
0
 public TopicManForm()
 {
     InitializeComponent();
     ChannelFactory<TopicsManager> dupFactory = null;
     dupFactory = new ChannelFactory<TopicsManager>(
         new NetTcpBinding(), new EndpointAddress("net.tcp://localhost:9000/TopicManager"));
     dupFactory.Open();
     clientProxy = dupFactory.CreateChannel();
     List<string> l = new List<string>();
     l = clientProxy.listTopics();
     foreach (var t in l)
     {
         listBox1.Items.Add(t);
     }
 }
示例#7
0
        public TopicManForm()
        {
            InitializeComponent();
            ChannelFactory <TopicsManager> dupFactory = null;

            dupFactory = new ChannelFactory <TopicsManager>(
                new NetTcpBinding(), new EndpointAddress("net.tcp://localhost:9000/TopicManager"));
            dupFactory.Open();
            clientProxy = dupFactory.CreateChannel();
            List <string> l = new List <string>();

            l = clientProxy.listTopics();
            foreach (var t in l)
            {
                listBox1.Items.Add(t);
            }
        }
示例#8
0
    //public Topic[] topicArray;
    //public List<Topic> topicList = new List<Topic>();

    void Awake()
    {
        // Dont destroy this object when a new scene is loaded, unless...
        DontDestroyOnLoad(this);

        // There can be only ONE!
        if (_instance == null)
        {
            _instance = this;
        }
        else if (_instance != this)
        {
            Destroy(this.gameObject);
        }

        // Randomise the list of Topics at the start of the game (here or in TopicsLoader class)
    }
示例#9
0
            static void Main(string[] args)
            {
                Chatter       Manuelle = new Chatter("Manuelle"), Léna = new Chatter("Léna");
                TopicsManager tm = new TopicsManager();

                tm.createTopic("Mon corps tout nu");
                tm.createTopic("La pls, mon histoire");
                Console.WriteLine("The openned topics are : ");

                foreach (String s in tm.topics.Keys)
                {
                    Console.WriteLine(s);
                }

                Chatroom cr = tm.joinTopic("La pls, mon histoire");

                cr.join(Manuelle);
                cr.join(Léna);
                cr.post("Coucou ma chérie, comment s'est passé ta journée ? Je veux tout savoir ;) <3 <3 <3", Manuelle);
                Console.ReadKey();
                cr.post("J'ai passé le balai toute la journée et toi mon coeur ? :$ <3 <3", Léna);
                Console.ReadKey();
                cr.post("Oh trop bien ! Moi j'ai passé l'aspirateur, j'ai retrouvé une chips derrière mon pc (encore) :@ ", Manuelle);
                Console.ReadKey();
                cr.post("C'est encore tes connards de potes ! De toute façon je peux pas les blairer, surtout Théo ! Il est méchant mais le pire c'est qu'il a raison ! :(", Léna);
                Console.ReadKey();
                cr.quit(Manuelle);
                cr.post("Oh non je suis toute seule ! Manu mon amour reviens moi ! Bon tant pis je vais allé voir un de ses potes comme j'ai l'habitude ! Je suis une coquine hihihi", Léna);
                Console.ReadLine();



                AuthentificationManager test = new AuthentificationManager();

                try
                {
                    test.addUser("Manuelle", "Léna");
                }
                catch (UserExistsException e)
                {
                    e.DisplayLogReportShow();
                }
            }
示例#10
0
        static void Main()
        {
            /*
             * Application.EnableVisualStyles();
             * Application.SetCompatibleTextRenderingDefault(false);
             * Application.Run(new Form1());
             */

            AuthentificationManager am = new AuthentificationManager();
            TopicsManager           tm = new TopicsManager();

            try
            {
                if (File.Exists(PATH))
                {
                    am = AuthentificationManager.load(PATH);
                }
                else
                {
                    am = new AuthentificationManager();
                }
                if (File.Exists(PATH_TOPICS))
                {
                    tm.topics = TopicsManager.load(PATH_TOPICS);
                }
                else
                {
                    tm = new TopicsManager();
                }
            }
            catch (IOException e)
            {
                Console.WriteLine(e.Message);
            }

            ChatServer.StartServer();
            ChatServer.StartListening();

            /*Chatter Manuelle = new Chatter("Manuelle"), Léna = new Chatter("Léna");
             * tm.createTopic("Mon corps tout nu");
             * tm.createTopic("La pls, mon histoire");
             * Console.WriteLine("The openned topics are : ");
             *
             *
             * foreach (String s in tm.topics.Keys)
             * {
             *  Console.WriteLine(s);
             * }
             *
             * Chatroom cr = tm.joinTopic("La pls, mon histoire");
             * cr.join(Manuelle);
             * cr.join(Léna);
             * cr.post("Coucou ma chérie, comment s'est passé ta journée ? Je veux tout savoir ;) <3 <3 <3", Manuelle);
             * Console.ReadKey();
             * cr.post("J'ai passé le balai toute la journée et toi mon coeur ? :$ <3 <3", Léna);
             * Console.ReadKey();
             * cr.post("Oh trop bien ! Moi j'ai passé l'aspirateur, j'ai retrouvé une chips derrière mon pc (encore) :@ ", Manuelle);
             * Console.ReadKey();
             * cr.post("C'est encore tes connards de potes ! De toute façon je peux pas les blairer, surtout Théo ! Il est méchant mais le pire c'est qu'il a raison ! :(", Léna);
             * Console.ReadKey();
             * cr.quit(Manuelle);
             * cr.post("Oh non je suis toute seule ! Manu mon amour reviens moi ! Bon tant pis je vais allé voir un de ses potes comme j'ai l'habitude ! Je suis une coquine hihihi", Léna);
             * Console.ReadLine();*/



            /*
             * test.checkRegistredUsers();
             *
             * try
             * {
             *  test.removeUser("Théo");
             * }
             * catch (UserUnknowException e)
             * {
             *  e.DisplayLogReportShow();
             * }
             *
             * test.checkRegistredUsers();
             *
             * try
             * {
             *  test.authentify("Alexandre", "456");
             * }
             * catch (WrongPasswordException e)
             * {
             *  e.DisplayLogReportShow();
             * }
             * catch (UserUnknowException e)
             * {
             *  e.DisplayLogReportShow();
             * }
             *
             * AuthentificationManager aut = null;
             *
             * if (File.Exists(PATH))
             * {
             *  aut = AuthentificationManager.load(PATH);
             *  aut.checkRegistredUsers();
             * }
             * else
             * {
             *  aut = new AuthentificationManager();
             * }
             *
             *
             * Console.ReadLine();*/
        }
示例#11
0
            static void Main(string[] args)
            {
                Chatter       Manuelle = new Chatter("Manuelle"), Léna = new Chatter("Léna");
                TopicsManager tm = new TopicsManager();

                tm.createTopic("Mon corps tout nu");
                tm.createTopic("La pls, mon histoire");
                Console.WriteLine("The openned topics are : ");

                foreach (String s in tm.topics.Keys)
                {
                    Console.WriteLine(s);
                }

                Chatroom cr = tm.joinTopic("La pls, mon histoire");

                cr.join(Manuelle);
                cr.join(Léna);
                cr.post("Coucou ma chérie, comment s'est passé ta journée ? Je veux tout savoir ;) <3 <3 <3", Manuelle);
                Console.ReadKey();
                cr.post("J'ai passé le balai toute la journée et toi mon coeur ? :$ <3 <3", Léna);
                Console.ReadKey();
                cr.post("Oh trop bien ! Moi j'ai passé l'aspirateur, j'ai retrouvé une chips derrière mon pc (encore) :@ ", Manuelle);
                Console.ReadKey();
                cr.post("C'est encore tes connards de potes ! De toute façon je peux pas les blairer, surtout Théo ! Il est méchant mais le pire c'est qu'il a raison ! :(", Léna);
                Console.ReadKey();
                cr.quit(Manuelle);
                cr.post("Oh non je suis toute seule ! Manu mon amour reviens moi ! Bon tant pis je vais allé voir un de ses potes comme j'ai l'habitude ! Je suis une coquine hihihi", Léna);
                Console.ReadLine();


                /*AuthentificationManager test = new AuthentificationManager();
                 *
                 * try
                 * {
                 *  test.addUser("Manuelle", "Léna");
                 *  test.addUser("Théo", "123");
                 *  test.addUser("Alexandre", "456");
                 *
                 *  test.save("Test.xml");
                 * }
                 * catch (UserExistsException e)
                 * {
                 *  e.DisplayLogReportShow();
                 * }
                 * catch (IOException e)
                 * {
                 *  Console.WriteLine(e.Message);
                 * }
                 * Console.WriteLine();
                 *
                 *
                 * test.checkRegistredUsers();
                 *
                 * try
                 * {
                 *  test.removeUser("Théo");
                 * }
                 * catch (UserUnknowException e)
                 * {
                 *  e.DisplayLogReportShow();
                 * }
                 *
                 * test.checkRegistredUsers();
                 *
                 * try
                 * {
                 *  test.authentify("Alexandre", "456");
                 * }
                 * catch(WrongPasswordException e)
                 * {
                 *  e.DisplayLogReportShow();
                 * }
                 * catch(UserUnknowException e)
                 * {
                 *  e.DisplayLogReportShow();
                 * }*/

                AuthentificationManager aut = null;

                if (File.Exists(PATH))
                {
                    aut = AuthentificationManager.load(PATH);
                    aut.checkRegistredUsers();
                }
                else
                {
                    aut = new AuthentificationManager();
                }


                Console.ReadLine();
            }
示例#12
0
        public Engin()
        {
            loadNotes = new TopicsManager();

            notesGenerator = new NotesGenerator(loadNotes.GetDirectoryLocation("Notes"));
        }
示例#13
0
        private void Auth()
        {
            AuthentificationManager am = new AuthentificationManager();
            TopicsManager           tm = new TopicsManager();

            try
            {
                while (true)
                {
                    /* Vérification de la connexion avec le client */
                    if (!(clientSocket.Connected))
                    {
                        ctThread.Abort();
                    }

                    /* Nous avons créé chatLibrary.dll qui nous apporte les différents paquets utilisables par notre application*/
                    Packet packet = null;
                    try
                    {
                        packet = Packet.Receive(ns);
                    }
                    catch (SerializationException e)
                    {
                        Console.WriteLine(e);
                    }

                    /* Packet de login */
                    if (packet is AuthPacket)
                    {
                        AuthPacket ap = (AuthPacket)packet;
                        Console.Write("[AUTHENTIFICATION]User " + ap.login + " attempting to connect");
                        // flag contient le code d'erreur
                        int flag = am.authentify(ap.login, ap.password);
                        // packet de callback
                        LoginPacket bp = new LoginPacket(flag);
                        if (flag == 1)
                        {
                            /* User logged in */
                            Console.WriteLine(" SUCCESS");
                            User u = new User(ap.login, ap.password, ns);
                            u.chatter = new Chatter(ap.login);
                            ChatServer.addUser(u);
                            Packet.Send(bp, ns);

                            /* Displaying topics to user */
                            Console.Write("[SERVER]Sending topics : ");
                            Console.Write("[");
                            for (int i = 0; i < tm.getRooms().Count; ++i)
                            {
                                if (i == tm.getRooms().Count - 1)
                                {
                                    Console.Write(tm.getRooms()[i]);
                                }
                                else
                                {
                                    Console.Write(tm.getRooms()[i] + ", ");
                                }
                            }
                            Console.WriteLine("]");
                            // Envoie des chatrooms disponibles
                            TopicsPacket tp = new TopicsPacket(tm.getRooms());
                            Packet.Send(tp, ns);
                        }
                        else
                        {
                            Console.WriteLine("[AUTHENTIFICATION]Error, unable to connect the user " + ap.login + ", error code : " + flag);
                            Packet.Send(bp, ns);
                            this.Auth();
                        }
                    }

                    /* Paquet d'inscription d'un nouvel utilisateur */
                    if (packet is SubscribePacket)
                    {
                        SubscribePacket     sb = (SubscribePacket)packet;
                        SubscribeValidation sv = new SubscribeValidation(am.addUser(sb.login, sb.password));
                        if (sv.value)
                        {
                            Console.WriteLine("[REGISTER]User " + sb.login + " successfully created");
                        }
                        else
                        {
                            Console.WriteLine("[REGISTER]Error during " + sb.login + " account creation");
                        }
                        Packet.Send(sv, ns);
                    }

                    /* Paquet pour rejoindre une chatroom */
                    if (packet is JoinChatRoomPacket)
                    {
                        JoinChatRoomPacket jcp = (JoinChatRoomPacket)packet;

                        if (tm.getRooms().Contains(jcp.chatRoom))
                        {
                            bool flag = tm.joinTopic(jcp.chatRoom, ChatServer.getUser(jcp.user));
                            if (flag)
                            {
                                Console.WriteLine("[TOPICS]User " + jcp.user + " joined chatroom : " + jcp.chatRoom);
                            }
                            else
                            {
                                Console.WriteLine("[TOPICS]Cannont connect user to the chatroom, user : "******" is already in the chatroom : " + jcp.chatRoom);
                            }
                            Chatroom          ct  = (Chatroom)tm.getRoom(jcp.chatRoom);
                            ListChatterPacket lcp = new ListChatterPacket(ct.getChatters(), jcp.chatRoom);
                            Thread.Sleep(500);
                            foreach (User u in ct.chatters)
                            {
                                Console.WriteLine("[TOPICS]Sending user list from " + jcp.chatRoom + " to user " + u.login);
                                Packet.Send(lcp, u.ns);
                            }
                        }
                    }

                    /* Paquet pour créer une chatroom */
                    if (packet is CreateChatRoomPacket)
                    {
                        bool flag;
                        CreateChatRoomValidationPacket ccvp;
                        CreateChatRoomPacket           ccp = (CreateChatRoomPacket)packet;
                        if (!tm.topics.ContainsKey(ccp.chatRoom))
                        {
                            flag = tm.createTopic(ccp.chatRoom);
                            if (flag)
                            {
                                Console.WriteLine("[TOPICS]User " + ccp.user + " created chatroom : " + ccp.chatRoom);
                                TopicsPacket tp = new TopicsPacket(tm.getRooms());
                                foreach (User u in ChatServer.chattingUsers)
                                {
                                    Packet.Send(tp, u.ns);
                                }
                            }
                            /* Broadcast la création de room avec affichage de message */

                            ccvp = new CreateChatRoomValidationPacket(flag, ccp.chatRoom);
                        }
                        else
                        {
                            flag = false;
                            Console.WriteLine("[TOPICS]Chatroom creation failed, chatroom : " + ccp.chatRoom + " already exists");
                            ccvp = new CreateChatRoomValidationPacket(flag, ccp.chatRoom);
                        }
                        Packet.Send(ccvp, ns);
                    }

                    /* Paquet d'envoie de message */
                    if (packet is MessagePacket)
                    {
                        MessagePacket mp = (MessagePacket)packet;
                        Console.WriteLine("[CHATROOM]Posting message : [" + mp.message + "] in chatroom :" + mp.chatroom + " by user : "******"[CHATROOM]User : "******" is leaving chatroom : " + lcrp.chatRoom);

                        /* Il faut lock ici pour éviter un problème dans la liste des utilisateurs
                         * Nous evitons ainsi d'envoyer un message à un utilisateur déjà déconnecté */
                        lock (thisLock)
                        {
                            cible.quit(ChatServer.getUser(lcrp.user));
                            Chatroom          ct  = (Chatroom)tm.getRoom(lcrp.chatRoom);
                            ListChatterPacket lcp = new ListChatterPacket(ct.getChatters(), lcrp.chatRoom);
                            Thread.Sleep(1000);
                            foreach (User u in ct.chatters)
                            {
                                Console.WriteLine("[TOPICS]Sending user list from " + lcrp.chatRoom + " to user " + u.login);
                                Packet.Send(lcp, u.ns);
                            }
                        }
                    }

                    /* Paquet de déconnexion d'un utilisateur */
                    if (packet is DisconnectPacket)
                    {
                        DisconnectPacket dp = (DisconnectPacket)packet;
                        Thread.Sleep(200);
                        User u = ChatServer.getUser(dp.user);
                        u.ns.Close();
                        ChatServer.removeUser(u);
                        this.clientSocket.Close();
                        Console.WriteLine("[SERVER]A user disconnected properly");
                    }
                }
            }
            catch (IOException e)
            {
                Console.WriteLine("[SERVER]A user crashed");
                ctThread.Join();
            }
            catch (NullReferenceException ex)
            {
                Console.WriteLine("[TOPICS]Impossible de retirer le client, celui-ci n'existe pas dans la chatroom");
                Console.WriteLine(ex);
            }
        }