Beispiel #1
0
        public virtual Package Clone()
        {
            Package pkg = new Package(size, endian);

            pkg.CopyFrom(Buffer, 0, 0, size);

            pkg.ReadHeader();

            postion = dataLength;

            return pkg;
        }
Beispiel #2
0
        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();
            }
        }
Beispiel #3
0
 protected virtual void ReceivePackage(Package pkg)
 {
     //throw new NotImplementedException();
 }
Beispiel #4
0
 protected override void ReceivePackage(Package pkg)
 {
     base.ReceivePackage(pkg);
 }
Beispiel #5
0
 protected override void ReceivePackage(Package pkg)
 {
     ThreadPool.QueueUserWorkItem(new WaitCallback(AsynProcessPacket), pkg);
 }
Beispiel #6
0
        public virtual void SendPkg(Package pkg)
        {
            if (m_socket == null) return;

            m_socket.SendPkg(pkg);
        }
Beispiel #7
0
        public void SendPkg(Package pkg)
        {
            if (_processor == null || pkg == null) return;

            _processor.SendTcp(pkg);
        }
Beispiel #8
0
 public void ReceivePkg(Package pkg)
 {
     if(ReceivePkgHandler != null) ReceivePkgHandler(pkg);
 }