コード例 #1
0
ファイル: TcpConnect.cs プロジェクト: nandub/DeOps
        public void CleanClose(string reason, bool reconnect)
        {
            if (State == TcpState.Connecting)
            {
                ByeMessage = reason;
            }

            if (State == TcpState.Connected)
            {
                ByeMessage = reason;

                Bye bye = new Bye();

                bye.SenderID    = Network.Local.UserID;
                bye.ContactList = Network.Routing.Find(UserID, 8);
                bye.Message     = reason;
                bye.Reconnect   = reconnect;

                SendPacket(bye);

                Network.UpdateLog("Tcp", "Closing connection to " + ToString() + " " + reason);
            }

            State = TcpState.Closed;
        }
コード例 #2
0
        public void PersonCame(Person person, DateTime time)
        {
            if (greet != null)
            {
                greet(person, time);
            }
            Hello greetByPerson = new Hello(person.Greatings);

            greet += greetByPerson;
            Bye byeByPerson = new Bye(person.Goodbye);

            bye += byeByPerson;
            Console.WriteLine($"{person.PersonName} came!");
        }
コード例 #3
0
        public void ReadWriteManuallySerMsgs()
        {
            var a = new Bye {
                Priority = Priority.High
            };
            var b = new Ping {
                Priority = Priority.High
            };
            var c = new Pong {
                Priority = Priority.High
            };
            var d = new Bye {
                Priority = Priority.Normal
            };
            var e = new Ping {
                Priority = Priority.Normal
            };
            var f = new Pong {
                Priority = Priority.Normal
            };
            var ms = new MemoryStream();

            _sh.ManuallySerialize(ms, a);
            _sh.ManuallySerialize(ms, b);
            _sh.ManuallySerialize(ms, c);
            _sh.ManuallySerialize(ms, d);
            _sh.ManuallySerialize(ms, e);
            _sh.ManuallySerialize(ms, f);
            ms.Seek(0, SeekOrigin.Begin);
            var ads = _sh.ManuallyDeserialize(ms);
            var bds = _sh.ManuallyDeserialize(ms);
            var cds = _sh.ManuallyDeserialize(ms);
            var dds = _sh.ManuallyDeserialize(ms);
            var eds = _sh.ManuallyDeserialize(ms);
            var fds = _sh.ManuallyDeserialize(ms);

            Assert.IsInstanceOfType(ads, typeof(Bye));
            Assert.IsInstanceOfType(bds, typeof(Ping));
            Assert.IsInstanceOfType(cds, typeof(Pong));
            Assert.IsInstanceOfType(dds, typeof(Bye));
            Assert.IsInstanceOfType(eds, typeof(Ping));
            Assert.IsInstanceOfType(fds, typeof(Pong));
            Assert.AreEqual(Priority.High, ((Message)ads).Priority);
            Assert.AreEqual(Priority.High, ((Message)bds).Priority);
            Assert.AreEqual(Priority.High, ((Message)cds).Priority);
            Assert.AreEqual(Priority.Normal, ((Message)dds).Priority);
            Assert.AreEqual(Priority.Normal, ((Message)eds).Priority);
            Assert.AreEqual(Priority.Normal, ((Message)fds).Priority);
        }
コード例 #4
0
        public void PersonGone(Person person)
        {
            Hello greetByPerson = new Hello(person.Greatings);

            greet        = greetByPerson;
            person.Came -= PersonCame;
            Bye byeByPerson = new Bye(person.Goodbye);

            bye = byeByPerson;
            if (bye != null)
            {
                bye(person);
            }
            person.Gone -= PersonGone;
            Console.WriteLine($"{person.PersonName} gone!");
        }
コード例 #5
0
ファイル: mainMenu.cs プロジェクト: 9demon/WordGuesser-
        public static void Options()
        {
            mainMenu.size();
            Console.Title = "Main menu";
            makeASCII();
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine("                                                                     Welcome " + Environment.UserName);
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine("");
            Console.WriteLine("Choose one of the following options :");
            Console.WriteLine();
            Console.Write("   [");
            Console.ForegroundColor = ConsoleColor.Red;
            Console.Write("1");
            Console.ForegroundColor = ConsoleColor.White;
            Console.Write("] Word Guesser");
            Console.WriteLine("");
            Console.Write("   [");
            Console.ForegroundColor = ConsoleColor.Red;
            Console.Write("2");
            Console.ForegroundColor = ConsoleColor.White;
            Console.Write("] Exit");
            Console.WriteLine("");
            Console.WriteLine("");
            Console.Write(" > ");
            int chooser = int.Parse(Console.ReadLine());

            switch (chooser)
            {
            case 1:
                Console.Clear(); WordGuesser.guesserGame();
                break;

            case 2: Console.Clear(); Bye.quit();
                break;

            default:
                break;
            }
        }
コード例 #6
0
        public void DetermineApproprateSerialization()
        {
            var a = new Bye();
            var b = new Ping();
            var c = new Pong();
            var d = new DummyMessage();
            var e = new DummyProtoMessage();

            var at = _sh.DetermineApproprateSerialization(a);
            var bt = _sh.DetermineApproprateSerialization(b);
            var ct = _sh.DetermineApproprateSerialization(c);
            var dt = _sh.DetermineApproprateSerialization(d);
            var et = _sh.DetermineApproprateSerialization(e);

            Assert.AreEqual(SerializationType.Manual, at);
            Assert.AreEqual(SerializationType.Manual, bt);
            Assert.AreEqual(SerializationType.Manual, ct);
            Assert.AreEqual(SerializationType.Binary, dt);
            Assert.AreEqual(SerializationType.Protobuf, et);
        }
コード例 #7
0
ファイル: TcpHandler.cs プロジェクト: nandub/DeOps
        public void Receive_Bye(G2ReceivedPacket packet)
        {
            Bye bye = Bye.Decode(packet);

            foreach (DhtContact contact in bye.ContactList)
            {
                Network.Routing.Add(contact);
            }

            string message = (bye.Message != null) ? bye.Message : "";

            packet.Tcp.ByeMessage = "Remote: " + message;

            Network.UpdateLog("Tcp", "Bye Received from " + packet.Tcp.ToString() + " " + message);

            // close connection
            packet.Tcp.Disconnect();

            // reconnect
            if (bye.Reconnect && NeedProxies(ProxyType.Server))
            {
                MakeOutbound(packet.Source, packet.Tcp.TcpPort, "Reconnecting");
            }
        }
コード例 #8
0
ファイル: TcpConnect.cs プロジェクト: RoelofSol/DeOps
        public void CleanClose(string reason, bool reconnect)
        {
            if (State == TcpState.Connecting)
                ByeMessage = reason;

            if (State == TcpState.Connected)
            {
                ByeMessage = reason;

                Bye bye = new Bye();

                bye.SenderID = Network.Local.UserID;
                bye.ContactList = Network.Routing.Find(UserID, 8);
                bye.Message = reason;
                bye.Reconnect = reconnect;

                SendPacket(bye);

                Network.UpdateLog("Tcp", "Closing connection to " + ToString() + " " + reason);
            }

            State = TcpState.Closed;
        }