public virtual Package Clone() { Package pkg = new Package(size, endian); pkg.CopyFrom(Buffer, 0, 0, size); pkg.ReadHeader(); postion = dataLength; return pkg; }
public void SendTcp(Package pkg) { if (pkg == null || m_socket == null) return; pkg.WriteHeader(); pkg.postion = 0; if (m_socket.Sockets.Connected == false) return; try { lock (m_pkgQueue.SyncRoot) { m_pkgQueue.Enqueue(pkg); if (m_sendingTcp) return; m_sendingTcp = true; } if (m_socket.EnableAsyncSend) { ThreadPool.QueueUserWorkItem(new WaitCallback(SendAsyncImp), this); } else { AsyncSendPkgComplete(this, m_sendAsyncEvent); } } catch (Exception ex) { log.Error("数据包发送失败.", ex); m_socket.Disconnect(); } }
protected virtual void ReceivePackage(Package pkg) { //throw new NotImplementedException(); }
protected override void ReceivePackage(Package pkg) { base.ReceivePackage(pkg); }
protected override void ReceivePackage(Package pkg) { ThreadPool.QueueUserWorkItem(new WaitCallback(AsynProcessPacket), pkg); }
public virtual void SendPkg(Package pkg) { if (m_socket == null) return; m_socket.SendPkg(pkg); }
public void SendPkg(Package pkg) { if (_processor == null || pkg == null) return; _processor.SendTcp(pkg); }
public void ReceivePkg(Package pkg) { if(ReceivePkgHandler != null) ReceivePkgHandler(pkg); }