void SendData(int cmd, string info, NetCallBack callback) { if (Checker.SendCheker.ContainsKey((PROTOCOL)cmd)) { ProtocolChecker checker = Checker.SendCheker[(PROTOCOL)cmd]; callback += (json) => { checker.canSend = true; }; //< 중복해서 전송이 가능하면 또 전송 if (checker.canDuplicate) { netBase.SendData(cmd, info, callback); } else { //< 중복이 안된다면 현재 전송이 가능할때만 전송 if (checker.canSend) { netBase.SendData(cmd, info, callback); } } //< 전송 불가능으로 대입 checker.canSend = false; } }
public override void Finalization() { if ( //数据段单独存放,因此_componentData的长度为协议结构长度减一 (_structureComponents.Count + 1 != Protocol.ProtocolStructures.Count) || !ProtocolChecker.CheckProtocol(this) || DataComponent == null || (Command.DataOrderType == DataOrderType.Order && DataComponent.ComponentContent.Length != Command.ReceiveBytesLength) ) { Status = PackageStatus.InvalidPackage; return; } Status = PackageStatus.Finalized; Finalized = true; }