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())); }
public void SendMessage(Message msg) { client.SendMessage(msg.toJson()); Console.WriteLine("sent from " + msg.FROM.UNIQUENAME + " type " + msg.TYPE); }
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; } }
public void SendMessage(Message msg) { client.SendMessage(msg.toJson()); Form1.printLog("sent to " + name + " type " + msg.TYPE); }