コード例 #1
0
ファイル: NetPackage.cs プロジェクト: patrick963534/g11
        public static NetPackage Create(int contentID, int orderID, NetCommandType commandID, int packageCount, byte[] data, IPEndPoint iep)
        {
            using (BinaryWriter bw = new BinaryWriter(new MemoryStream()))
            {
                int packageID = GeneratePackageID();

                bw.Write(MagicNumber);
                bw.Write(packageID);
                bw.Write(contentID);
                bw.Write(orderID);

                if (orderID == 1)
                {
                    bw.Write((int)commandID);
                    bw.Write(packageCount);
                }

                bw.Write(data, 0, data.Length);
                bw.Flush();
                bw.BaseStream.Seek(0, SeekOrigin.Begin);

                NetPackage package = new NetPackage();

                package.RemoteEP = new IPEndPoint(iep.Address, iep.Port);
                package.ID = packageID;
                package.ContentID = contentID;
                package.OrderID = orderID;
                package.CommandID = commandID;
                package.PackageCount = packageCount;
                package.Buffer = ((MemoryStream)bw.BaseStream).ToArray();
                package.Size = data.Length;

                return package;
            }
        }
コード例 #2
0
        public static NetPackage Create(int contentID, int orderID, NetCommandType commandID, int packageCount, byte[] data, IPEndPoint iep)
        {
            using (BinaryWriter bw = new BinaryWriter(new MemoryStream()))
            {
                int packageID = GeneratePackageID();

                bw.Write(MagicNumber);
                bw.Write(packageID);
                bw.Write(contentID);
                bw.Write(orderID);

                if (orderID == 1)
                {
                    bw.Write((int)commandID);
                    bw.Write(packageCount);
                }

                bw.Write(data, 0, data.Length);
                bw.Flush();
                bw.BaseStream.Seek(0, SeekOrigin.Begin);

                NetPackage package = new NetPackage();

                package.RemoteEP     = new IPEndPoint(iep.Address, iep.Port);
                package.ID           = packageID;
                package.ContentID    = contentID;
                package.OrderID      = orderID;
                package.CommandID    = commandID;
                package.PackageCount = packageCount;
                package.Buffer       = ((MemoryStream)bw.BaseStream).ToArray();
                package.Size         = data.Length;

                return(package);
            }
        }
コード例 #3
0
        public static NetPackage[] ContentCreate(NetCommandType commandID, byte[] data, IPEndPoint iep)
        {
            int contentID = NetPackage.GenerateContentID();

            int max_pkg_sz = 384;
            int offset     = 0;
            int order      = 1;
            int count      = (data.Length + max_pkg_sz - 1) / max_pkg_sz;

            NetPackage[] packages = new NetPackage[count];

            int length = data.Length;

            while (length != 0)
            {
                int    sz  = Math.Min(384, length);
                byte[] buf = new MemoryStream(data, offset, sz).ToArray();
                packages[order - 1] = (NetPackage.Create(contentID, order, commandID, count, buf, iep));

                order++;
                offset += sz;
                length -= sz;
            }

            return(packages);
        }
コード例 #4
0
ファイル: Logger.cs プロジェクト: patrick963534/g11
 public static void CounterCommand_Send(NetCommandType cmd)
 {
     lock (s_lockobject)
     {
         if (!m_cmdCounter_send.ContainsKey(cmd))
         {
             m_cmdCounter_send.Add(cmd, 1);
         }
         else
         {
             m_cmdCounter_send[cmd]++;
         }
     }
 }
コード例 #5
0
ファイル: Logger.cs プロジェクト: patrick963534/g11
 public static void CounterCommand_Recv(NetCommandType cmd)
 {
     lock (s_lockobject)
     {
         if (!m_cmdCounter_recv.ContainsKey(cmd))
         {
             m_cmdCounter_recv.Add(cmd, 1);
         }
         else
         {
             m_cmdCounter_recv[cmd]++;
         }
     }
 }
コード例 #6
0
ファイル: Logger.cs プロジェクト: patrick963534/g11
 public static void CounterCommand_Send(NetCommandType cmd)
 {
     lock (s_lockobject)
     {
         if (!m_cmdCounter_send.ContainsKey(cmd))
         {
             m_cmdCounter_send.Add(cmd, 1);
         }
         else
         {
             m_cmdCounter_send[cmd]++;
         }
     }
 }
コード例 #7
0
ファイル: Logger.cs プロジェクト: patrick963534/g11
 public static void CounterCommand_Recv(NetCommandType cmd)
 {
     lock (s_lockobject)
     {
         if (!m_cmdCounter_recv.ContainsKey(cmd))
         {
             m_cmdCounter_recv.Add(cmd, 1);
         }
         else
         {
             m_cmdCounter_recv[cmd]++;
         }
     }
 }
コード例 #8
0
            public void Add(NetPackage package)
            {
                if (m_packages.ContainsKey(package.OrderID))
                {
                    return;
                }
                else
                {
                    m_packages.Add(package.OrderID, package);
                }

                if (package.OrderID == 1)
                {
                    type    = (NetCommandType)package.CommandID;
                    m_count = package.PackageCount;
                }
            }
コード例 #9
0
ファイル: NetPackage.cs プロジェクト: patrick963534/g11
        public static NetPackage[] ContentCreate(NetCommandType commandID, byte[] data, IPEndPoint iep)
        {
            int contentID = NetPackage.GenerateContentID();

            int max_pkg_sz = 384;
            int offset = 0;
            int order = 1;
            int count = (data.Length + max_pkg_sz - 1) / max_pkg_sz;
            NetPackage[] packages = new NetPackage[count];

            int length = data.Length;
            while (length != 0)
            {
                int sz = Math.Min(384, length);
                byte[] buf = new MemoryStream(data, offset, sz).ToArray();
                packages[order - 1] = (NetPackage.Create(contentID, order, commandID, count, buf, iep));

                order++;
                offset += sz;
                length -= sz;
            }

            return packages;
        }
コード例 #10
0
 public NetCommand(NetCommandType type, string data) {
     CreateTime = DateTime.Now;
     Type = type;
     Data = data;
 }