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; } }
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); } }
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); }
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]++; } } }
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]++; } } }
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; } }
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; }
public NetCommand(NetCommandType type, string data) { CreateTime = DateTime.Now; Type = type; Data = data; }