Ejemplo n.º 1
0
        public void SendingIniPackage(Person LocalPerson)
        {
            byte[] MainPackage = new byte[26], buf;
            MainPackage[4] = 3;

            string[] Strings = new string[4];
            foreach (var i in Dns.GetHostAddresses(Dns.GetHostName()))
            {
                if (i.AddressFamily == AddressFamily.InterNetwork)
                {
                    Strings = i.ToString().Split('.');
                }
            }
            FileTools.Log($"Sended ip:{Strings[0]}.{Strings[1]}.{Strings[2]}.{Strings[3]}");
            string LocalAddrLast = Strings[3];

            String    Addr;
            UdpClient Client = new UdpClient();

            int    Lenght = Dns.GetHostAddresses(Dns.GetHostName()).Length;
            string s      = Dns.GetHostAddresses(Dns.GetHostName())[Lenght - 1].MapToIPv4().ToString();

            for (int i = 1; i < 255; i++)
            {
                Strings[3] = i.ToString();
                Addr       = Strings[0] + "." + Strings[1] + "." + Strings[2] + "." + Strings[3];
                if (Addr == s)
                {
                    continue;
                }

                MainPackage[0] = byte.Parse(Strings[0]);
                MainPackage[1] = byte.Parse(Strings[1]);
                MainPackage[2] = byte.Parse(Strings[2]);
                MainPackage[3] = byte.Parse(LocalAddrLast);

                MainPackage[4] = 3;
                MainPackage[5] = LocalPerson.ID;
                buf            = BitConverter.GetBytes(LocalPerson.X);
                ToolsClass.CopyFromArrayToArry(ref MainPackage, ref buf, 6, 0, 4);

                buf = BitConverter.GetBytes(LocalPerson.Y);
                ToolsClass.CopyFromArrayToArry(ref MainPackage, ref buf, 10, 0, 4);

                buf = BitConverter.GetBytes(LocalPerson.XSpeed);
                ToolsClass.CopyFromArrayToArry(ref MainPackage, ref buf, 14, 0, 4);

                buf = BitConverter.GetBytes(LocalPerson.YSpeed);
                ToolsClass.CopyFromArrayToArry(ref MainPackage, ref buf, 18, 0, 4);

                buf = BitConverter.GetBytes(-1);
                ToolsClass.CopyFromArrayToArry(ref MainPackage, ref buf, 22, 0, 4);

                Client.Send(MainPackage, MainPackage.Length, new IPEndPoint(IPAddress.Parse(Addr), 7777));
            }
            FileTools.Log("Ini package sended");
            Client.Close();
        }
Ejemplo n.º 2
0
        static byte[] ConvertPackageToArray(PersonNetDataPackage Package)
        {
            byte[] MainPackage = new byte[37], buf;

            if (Package.IsNewPerson)
            {
                MainPackage[4] = 0;
            }
            else
            {
                MainPackage[4] = 2;
            }

            buf = BitConverter.GetBytes(Package.PersonID);
            ToolsClass.CopyFromArrayToArry(ref MainPackage, ref buf, 5, 0, 4);

            buf = BitConverter.GetBytes(Package.X);
            ToolsClass.CopyFromArrayToArry(ref MainPackage, ref buf, 9, 0, 4);

            buf = BitConverter.GetBytes(Package.Y);
            ToolsClass.CopyFromArrayToArry(ref MainPackage, ref buf, 13, 0, 4);

            buf = BitConverter.GetBytes(Package.XSpeed);
            ToolsClass.CopyFromArrayToArry(ref MainPackage, ref buf, 17, 0, 4);

            buf = BitConverter.GetBytes(Package.YSpeed);
            ToolsClass.CopyFromArrayToArry(ref MainPackage, ref buf, 21, 0, 4);

            buf = BitConverter.GetBytes(Package.AnimAddr);
            ToolsClass.CopyFromArrayToArry(ref MainPackage, ref buf, 25, 0, 4);

            buf = BitConverter.GetBytes(Package.AnimLenght);
            ToolsClass.CopyFromArrayToArry(ref MainPackage, ref buf, 29, 0, 4);

            buf = BitConverter.GetBytes(Package.BulletCurner);
            ToolsClass.CopyFromArrayToArry(ref MainPackage, ref buf, 33, 0, 4);

            return(MainPackage);
        }
Ejemplo n.º 3
0
        static void SendPersonList(object ob)
        {
            IPAddress     Addr   = IPAddress.Parse((string)((object[])ob)[0]);
            List <Person> ls     = (List <Person>)((object[])ob)[1];
            TcpClient     Sender = new TcpClient();

            for (int i = 0; i < 128; i++)
            {
                try
                {
                    Sender.Connect(Addr, 7778);
                    break;
                }
                catch { }
            }
            if (!Sender.Connected)
            {
                return;
            }

            Sender.GetStream().Write(BitConverter.GetBytes(ls.Count - 1), 0, 4);

            byte[] MainPackage = new byte[37], buf;

            string[] Strings = new string[4];
            foreach (var i in Dns.GetHostAddresses(Dns.GetHostName()))
            {
                if (i.AddressFamily == AddressFamily.InterNetwork)
                {
                    Strings = i.ToString().Split('.');
                }
            }

            FileTools.Log($"Sended ip:{Strings[0]}.{Strings[1]}.{Strings[2]}.{Strings[3]}");

            for (int i = 0; i < ls.Count - 1; i++)
            {
                MainPackage[0] = byte.Parse(Strings[0]);
                MainPackage[1] = byte.Parse(Strings[1]);
                MainPackage[2] = byte.Parse(Strings[2]);
                MainPackage[3] = byte.Parse(Strings[3]);

                MainPackage[4] = 0;

                buf = BitConverter.GetBytes((int)ls[i].ID);
                ToolsClass.CopyFromArrayToArry(ref MainPackage, ref buf, 5, 0, 4);

                buf = BitConverter.GetBytes(ls[i].X);
                ToolsClass.CopyFromArrayToArry(ref MainPackage, ref buf, 9, 0, 4);

                buf = BitConverter.GetBytes(ls[i].Y);
                ToolsClass.CopyFromArrayToArry(ref MainPackage, ref buf, 13, 0, 4);

                buf = BitConverter.GetBytes(ls[i].XSpeed);
                ToolsClass.CopyFromArrayToArry(ref MainPackage, ref buf, 17, 0, 4);

                buf = BitConverter.GetBytes(ls[i].YSpeed);
                ToolsClass.CopyFromArrayToArry(ref MainPackage, ref buf, 21, 0, 4);

                buf = BitConverter.GetBytes(8);
                ToolsClass.CopyFromArrayToArry(ref MainPackage, ref buf, 25, 0, 4);

                buf = BitConverter.GetBytes(8);
                ToolsClass.CopyFromArrayToArry(ref MainPackage, ref buf, 29, 0, 4);

                buf = BitConverter.GetBytes(-1);
                ToolsClass.CopyFromArrayToArry(ref MainPackage, ref buf, 33, 0, 4);

                Sender.GetStream().Write(MainPackage, 0, MainPackage.Length);
            }
            FileTools.Log("Person list sended");
            Sender.Close();
        }