Esempio n. 1
0
        public void TestGenerateFactoryEmpty()
        {
            NetworkPacketFactoryCodeGenerater gen = new NetworkPacketFactoryCodeGenerater(
                System.Windows.Forms.Application.StartupPath + "\\Test\\Networking\\TestFactoriesEmpty.dll");

            gen.BuildFactoriesAssembly();
        }
Esempio n. 2
0
        public void Connect(string ip, int port)
        {
            AutoResetEvent ev = new AutoResetEvent(false);

            var conn = new TCPConnection();

            conn.ConnectedToServer += delegate { ev.Set(); };

            conn.Connect(ip, port);
            if (!ev.WaitOne(5000))
            {
                throw new Exception("Connection timed out!");
            }

            var cpm = new ClientPacketManagerNetworked(conn);

            conn.Receiving = true;
            Thread.Sleep(100);
            cpm.WaitForUDPConnected();
            cpm.SyncronizeRemotePacketIDs();


            var gen = new NetworkPacketFactoryCodeGenerater(TWDir.Cache.CreateChild("GodGame").CreateFile("ClientPackets" + (new Random()).Next() + ".dll").FullName);

            UserInputHandlerTransporter = cpm.CreatePacketTransporter("UserInputHandler", gen.GetFactory <UserInputHandlerPacket>(), PacketFlags.TCP);
            UserInputTransporter        = cpm.CreatePacketTransporter("UserInput", gen.GetFactory <UserInputPacket>(), PacketFlags.TCP);
            GameStateDeltaTransporter   = cpm.CreatePacketTransporter("GameStateDelta", gen.GetFactory <GameStateDeltaPacket>(), PacketFlags.TCP);

            gen.BuildFactoriesAssembly();
        }
Esempio n. 3
0
        public ClientSyncer(IClientPacketManager packetManager)
        {
            //TODO: cleanup
            var gen         = new NetworkPacketFactoryCodeGenerater(TWDir.Cache.FullName + "\\ClientSyncerGenTemp" + (new Random()).Next(0, 10000) + ".dll");
            var timeFactory = gen.GetFactory <TimeUpdatePacket>();

            gen.BuildFactoriesAssembly();

            deltaTransport = packetManager.CreatePacketTransporter("WorldSyncerDeltaSnapshot", new DataPacket.Factory(),
                                                                   PacketFlags.UDP);

            timeTransport = packetManager.CreatePacketTransporter("WorldSyncerTimeUpdate", timeFactory,
                                                                  PacketFlags.UDP);

            var t = new Thread(receiveDeltaJob)
            {
                Name = "ClientSyncerDeltaJob", IsBackground = true
            };

            t.Start();

            t = new Thread(receiveTimeJob)
            {
                Name = "ClientSyncerTimeJob", IsBackground = true
            };
            t.Start();
        }
Esempio n. 4
0
        public void TestGenerateFactoryProperties()
        {
            NetworkPacketFactoryCodeGenerater gen = new NetworkPacketFactoryCodeGenerater(
                System.Windows.Forms.Application.StartupPath + "\\Test\\Networking\\TestFactoriesGeneratedProperties.dll");

            INetworkPacketFactory <PacketPropertiesTest> factory = gen.GetFactory <PacketPropertiesTest>();

            gen.BuildFactoriesAssembly();

            PacketPropertiesTest p = new PacketPropertiesTest();

            p.Text  = "Hello";
            p.Getal = 38;

            MemoryStream memStrm = new MemoryStream();
            BinaryWriter bw      = new BinaryWriter(memStrm);
            BinaryReader br      = new BinaryReader(memStrm);

            factory.ToStream(bw, p);

            memStrm.Position = 0;

            PacketPropertiesTest pCheck = factory.FromStream(br);

            Assert.AreEqual(pCheck, p);
        }
Esempio n. 5
0
        public void TestGenerateFactoryFields()
        {
            NetworkPacketFactoryCodeGenerater gen = new NetworkPacketFactoryCodeGenerater(
                System.Windows.Forms.Application.StartupPath + "\\Test\\Networking\\TestFactoriesGeneratedFields.dll");

            INetworkPacketFactory <PacketFieldsTest> factory = gen.GetFactory <PacketFieldsTest>();

            gen.BuildFactoriesAssembly();

            PacketFieldsTest p = new PacketFieldsTest();

            p.Text       = "Hello";
            p.Getal      = 38;
            p.Boolean    = true;
            p.GetalFloat = 456f;
            p.Buffer     = new byte[] { 1, 1, 2, 3, 5, 7, 13, 21 };
            p.Guid       = Guid.NewGuid();
            p.Enum       = ByteEnum.Second;
            p.Array      = new int[] { 1, 3, 6, 10, 15, 21 };

            MemoryStream memStrm = new MemoryStream();
            BinaryWriter bw      = new BinaryWriter(memStrm);
            BinaryReader br      = new BinaryReader(memStrm);

            factory.ToStream(bw, p);

            memStrm.Position = 0;

            PacketFieldsTest pCheck = factory.FromStream(br);

            Assert.AreEqual(pCheck, p);
        }
        public void StartListening()
        {
            var gen = new NetworkPacketFactoryCodeGenerater(TWDir.Cache.CreateChild("GodGame").CreateFile("ServerPackets" + (new Random()).Next() + ".dll").FullName);

            UserInputHandlerTransporter = spm.CreatePacketTransporter("UserInputHandler", gen.GetFactory <UserInputHandlerPacket>(), PacketFlags.TCP);
            UserInputTransporter        = spm.CreatePacketTransporter("UserInput", gen.GetFactory <UserInputPacket>(), PacketFlags.TCP);
            GameStateDeltaTransporter   = spm.CreatePacketTransporter("GameStateDelta", gen.GetFactory <GameStateDeltaPacket>(), PacketFlags.TCP);
            gen.BuildFactoriesAssembly();
            UserInputTransporter.EnableReceiveMode();
        }
Esempio n. 7
0
        public VirtualNetworkConnectorClient(SimpleClientPacketManager cpm)
        {
            var gen = new NetworkPacketFactoryCodeGenerater(TWDir.Cache.CreateChild("GodGame").CreateFile("ClientPackets" + (new Random()).Next() + ".dll").FullName);

            UserInputHandlerTransporter = cpm.CreatePacketTransporter("UserInputHandler", gen.GetFactory <UserInputHandlerPacket>(), PacketFlags.TCP);
            UserInputTransporter        = cpm.CreatePacketTransporter("UserInput", gen.GetFactory <UserInputPacket>(), PacketFlags.TCP);
            GameStateDeltaTransporter   = cpm.CreatePacketTransporter("GameStateDelta", gen.GetFactory <GameStateDeltaPacket>(), PacketFlags.TCP);

            gen.BuildFactoriesAssembly();
        }
Esempio n. 8
0
        public void TestGenerateFactory()
        {
            NetworkPacketFactoryCodeGenerater gen = new NetworkPacketFactoryCodeGenerater(
                System.Windows.Forms.Application.StartupPath + "\\Test\\Networking\\TestFactoriesGenerated.dll");

            INetworkPacketFactory <DataPacket> factory = gen.GetFactory <DataPacket>();


            gen.BuildFactoriesAssembly();
        }
Esempio n. 9
0
        public ServerFileTransporter(string uniqueName, IServerPacketManager pm)
        {
            var gen = new NetworkPacketFactoryCodeGenerater(Application.StartupPath + "\\ServerFileTrans" + uniqueName + ".dll");

            fileStartTransporter = pm.CreatePacketTransporter("SFTFileStart" + uniqueName, gen.GetFactory <FileStartPacket>(),
                                                              PacketFlags.TCP);
            fileCompleteTransporter = pm.CreatePacketTransporter("SFTFileComplete" + uniqueName, gen.GetFactory <T>(),
                                                                 PacketFlags.TCP);
            filePartTransporter = pm.CreatePacketTransporter("SFTFilePart" + uniqueName, gen.GetFactory <FilePartPacket>(),
                                                             PacketFlags.TCP);
            gen.BuildFactoriesAssembly();
            //fileList = _fileList;
            //cacheDir = TWDir.Cache.CreateSubdirectory("LauncherServer");
        }
Esempio n. 10
0
        public NetworkConnectorServer(int tcpPort, int udpPort)
        {
            TcpPort = tcpPort;
            spm     = new ServerPacketManagerNetworked(tcpPort, udpPort);

            var gen = new NetworkPacketFactoryCodeGenerater(TWDir.Cache.CreateChild("GodGame").CreateFile("ServerPackets" + (new Random()).Next() + ".dll").FullName);

            UserInputHandlerTransporter = spm.CreatePacketTransporter("UserInputHandler", gen.GetFactory <UserInputHandlerPacket>(), PacketFlags.TCP);
            UserInputTransporter        = spm.CreatePacketTransporter("UserInput", gen.GetFactory <UserInputPacket>(), PacketFlags.TCP);
            GameStateDeltaTransporter   = spm.CreatePacketTransporter("GameStateDelta", gen.GetFactory <GameStateDeltaPacket>(), PacketFlags.TCP);
            gen.BuildFactoriesAssembly();

            UserInputTransporter.EnableReceiveMode();
        }
        public ServerSyncer(IServerPacketManager packetManager)
        {
            //TODO: cleanup
            var gen         = new NetworkPacketFactoryCodeGenerater(TWDir.Cache.FullName + "\\ServerSyncerGenTemp.dll");
            var timeFactory = gen.GetFactory <TimeUpdatePacket>();

            gen.BuildFactoriesAssembly();

            deltaSnapshotTransporter = packetManager.CreatePacketTransporter("WorldSyncerDeltaSnapshot",
                                                                             new DataPacket.Factory(),
                                                                             Networking.PacketFlags.UDP);
            timeUpdateTransporter = packetManager.CreatePacketTransporter("WorldSyncerTimeUpdate",
                                                                          timeFactory,
                                                                          Networking.PacketFlags.UDP);
        }
        public ClientVersioningSyncer(VersioningSystem sys, IClientPacketManager pm)
        {
            this.sys = sys;
            var gen = new NetworkPacketFactoryCodeGenerater(TWDir.GenerateRandomCacheFile("CVS", "dll"));

            revisionTransporter = pm.CreatePacketTransporter("Versioning_Revision",
                                                             gen.GetFactory <RevisionPacket>(), PacketFlags.TCP);
            requestRevisionTransporter = pm.CreatePacketTransporter("Versioning_RequestRevision",
                                                                    gen.GetFactory <RevisionRequestPacket>(), PacketFlags.TCP);
            commandTransporter = pm.CreatePacketTransporter("Versioning_CMD",
                                                            new BytePacket.Factory(), PacketFlags.TCP);

            fileTransporter = new ClientFileTransporter <RevisionFilePacket>("Versioning_File", pm, TWDir.Cache.CreateSubdirectory("Versioning").FullName);
            fileTransporter.StartReceiving();

            gen.BuildFactoriesAssembly();
        }
        public ClientFileTransporter(string uniqueName, IClientPacketManager pm, string downloadCachePath)
        {
            this.downloadCachePath = downloadCachePath;
            UniqueName             = uniqueName;
            i = (new Random()).Next(0, 1000);

            var gen = new NetworkPacketFactoryCodeGenerater(Application.StartupPath + "\\ClientFileTrans" + uniqueName + i.ToString() + ".dll");

            startTransporter = pm.CreatePacketTransporter("SFTFileStart" + uniqueName, gen.GetFactory <FileStartPacket>(),
                                                          PacketFlags.TCP);
            endTransporter = pm.CreatePacketTransporter("SFTFileComplete" + uniqueName, gen.GetFactory <T>(),
                                                        PacketFlags.TCP);
            partTransporter = pm.CreatePacketTransporter("SFTFilePart" + uniqueName, gen.GetFactory <FilePartPacket>(),
                                                         PacketFlags.TCP);
            gen.BuildFactoriesAssembly();

            StartReceiving();
        }
Esempio n. 14
0
        public ServerVersioningSyncer(VersioningSystem sys, IServerPacketManager pm)
        {
            this.sys = sys;
            var gen = new NetworkPacketFactoryCodeGenerater(TWDir.GenerateRandomCacheFile("CVS", "dll"));

            revisionTransporter = pm.CreatePacketTransporter("Versioning_Revision",
                                                             gen.GetFactory <RevisionPacket>(), PacketFlags.TCP);
            requestRevisionTransporter = pm.CreatePacketTransporter("Versioning_RequestRevision",
                                                                    gen.GetFactory <RevisionRequestPacket>(), PacketFlags.TCP);
            requestRevisionTransporter.EnableReceiveCallbackMode(onRequestRevision);
            commandTransporter = pm.CreatePacketTransporter("Versioning_CMD",
                                                            new BytePacket.Factory(), PacketFlags.TCP);
            commandTransporter.EnableReceiveCallbackMode(onCommandReceived);

            fileTransporter = new ServerFileTransporter <RevisionFilePacket>("Versioning_File", pm);

            gen.BuildFactoriesAssembly();
        }
Esempio n. 15
0
        public void TestGenerateMultiple()
        {
            NetworkPacketFactoryCodeGenerater gen = new NetworkPacketFactoryCodeGenerater(
                Application.StartupPath + "\\Test\\Networking\\TestGenerateMultiple.dll");

            INetworkPacketFactory <PacketFieldsTest>     factory1 = gen.GetFactory <PacketFieldsTest>();
            INetworkPacketFactory <PacketPropertiesTest> factory2 = gen.GetFactory <PacketPropertiesTest>();

            gen.BuildFactoriesAssembly();

            PacketFieldsTest p1 = new PacketFieldsTest();

            p1.Text  = "Hello";
            p1.Getal = 38;

            MemoryStream memStrm; BinaryWriter bw; BinaryReader br;

            memStrm = new MemoryStream();
            bw      = new BinaryWriter(memStrm);
            br      = new BinaryReader(memStrm);
            factory1.ToStream(bw, p1);

            memStrm.Position = 0;

            PacketFieldsTest pCheck1 = factory1.FromStream(br);

            Assert.AreEqual(pCheck1, p1);


            PacketPropertiesTest p2 = new PacketPropertiesTest();

            p2.Text  = "Hello";
            p2.Getal = 38;
            memStrm  = new MemoryStream();
            bw       = new BinaryWriter(memStrm);
            br       = new BinaryReader(memStrm);
            factory2.ToStream(bw, p2);

            memStrm.Position = 0;

            PacketPropertiesTest pCheck2 = factory2.FromStream(br);

            Assert.AreEqual(pCheck2, p2);
        }