Example #1
0
        static void Main()
        {
            Message msg = new Message(Message.messageType.YES_I_AM_HERE, new Message.From("Kazio", 7, "127.0.0.1"));
            msg.toJson();

            //string str = "{\"TYPE\":\"DEAD\",\"FROM\":{\"UniqueName\":\"Marynioszek\",},\"CONTENT\":{\"Role\":\"Sponsor\",\"SiepNr\":0,\"SeqNum\":3,\"NewData\":{\"Ip\":null,\"Port\":0}}}";
            //Message test = Message.fromJson(str);
            //test.toJson();

            /*
            Message test = new Message(Message.messageType.DEAD, new Message.From("Marynioszek", 666, "6.6.6.6.6"));
            test.CONTENT.Role = Message.roleType.Sponsor;
            test.CONTENT.SeqNum = 3;
            test.toJson();
             */

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1(TCP.SearchIPs()));
        }
Example #2
0
 public void SendMessage(Message msg)
 {
     client.SendMessage(msg.toJson());
     Console.WriteLine("sent from " + msg.FROM.UNIQUENAME + " type " + msg.TYPE);
 }
Example #3
0
        void HandleIntroduction(Message msg)
        {
            Message.roleType role = msg.CONTENT.ROLE;
            switch (role)
            {
                case Message.roleType.NEW:
                    if (currentState == states.NOT_CONNECTED || currentState == states.INITIALIZATION)
                    {
                        ErrorLog("protocol error HandleIntroduction roleType.New");
                        return;
                    }
                    awaitingPeers.Add(new Peer(msg.FROM.IP, msg.FROM.PORT, msg.FROM.UNIQUENAME));
                    if (currentState != states.BUSY)
                    {
                        RequestForCS();
                    }
                    Log("HandleIntroduction isUniqueName");
                    break;
                case Message.roleType.SPONSOR:
                    if (currentState != states.INITIALIZATION)
                    {
                        ErrorLog("protocol error HandleIntroduction roleType.Sponsor");
                        return;
                    }
                    if (msg.CONTENT.STATUS == Message.statusType.OK)
                    {
                        Log("OK MESSAGE TEXT ! " + msg.toJson());
                        initialIntro = 0;
                        if (null != msg.CONTENT.NODESDATA)
                        {
                            foreach (Message.From peer in msg.CONTENT.NODESDATA)
                            {
                                Peer new_peer = new Peer(peer.IP, peer.PORT, peer.UNIQUENAME);
                                AddPeer(new_peer);
                                Form1.printLog("importing peers info " + new_peer.name);
                            }
                        }
                        RemovePeer(peers[tempSponsor]);
                        AddPeer(new Peer(msg.FROM.IP, msg.FROM.PORT, msg.FROM.UNIQUENAME));
                        foreach (Peer peer in peers.Values)
                        {
                            this.initialIntro++;
                            Message rsp = new Message(Message.messageType.HIGHEST_SEQ_NUM, itIsI);
                            rsp.CONTENT = new Message.Content();
                            rsp.CONTENT.STATUS = Message.statusType.GET;
                            peer.SendMessage(rsp);
                            OnImportantMessageSent(peer, rsp, Message.messageType.HIGHEST_SEQ_NUM);
                        }
                    }
                    if (msg.CONTENT.STATUS == Message.statusType.NOT_UNIQUE)
                    {
                        Console.WriteLine("Generate new Unique Name");
                        currentState = states.INITIALIZATION;
                    }
                    break;

                case Message.roleType.NODE:
                    if (currentState == states.NOT_CONNECTED || currentState == states.INITIALIZATION || msg.CONTENT.NEWDATA.UNIQUENAME == "")
                    {
                        ErrorLog("protocol error HandleIntroduction roleType.Node");
                        return;
                    }
                    AddPeer(msg.CONTENT.NEWDATA.UNIQUENAME, msg.CONTENT.NEWDATA.IP, msg.CONTENT.NEWDATA.PORT);
                    break;
            }
        }
Example #4
0
 public void SendMessage(Message msg)
 {
     client.SendMessage(msg.toJson());
     Form1.printLog("sent to " + name + " type " + msg.TYPE);
 }