Esempio n. 1
0
        private void InternalSend(Packet packet)
        {
            if (Running == false)
            {
                // 表示已处理发送
                packet.Release();
                return;
            }

            // 连接的通知事件
            EventHandler <NetStateSendPacketEventArgs> tempEvent = m_EventSendPacket;

            if (tempEvent != null)
            {
                NetStateSendPacketEventArgs sendEventArgs = new NetStateSendPacketEventArgs(this, packet);
                tempEvent(this, sendEventArgs);

                if (sendEventArgs.IsCancelSend == true)
                {
                    // 表示已处理发送
                    packet.Release();
                    return;
                }
            }

            long iLength = 0;

            PacketProfile packetProfile = PacketProfile.GetOutgoingProfile((byte)packet.PacketID);
            DateTime      dateTimeStart = (packetProfile == null ? DateTime.MinValue : OneServer.NowTime);

            {
                PacketBuffer packetBuffer = packet.AcquireBuffer();
                if (packetBuffer.IsNULL == true)
                {
                    throw new Exception("NetState.InternalSend(...) - packetBuffer.IsNULL == true error!");
                }

                byte[] byteBuffer = packetBuffer.Buffer;
                long   lLength    = packetBuffer.Length;

                // 加密数据
                if (PacketEncoder != null)
                {
                    PacketEncoder.EncodeOutgoingPacket(this, ref byteBuffer, ref lLength);
                }

                m_SendQueue.Enqueue(byteBuffer, 0, lLength);

                // 表示已处理发送
                packet.Release();

                // 实际压缩后的数据长度
                iLength = lLength;
            }
            if (packetProfile != null)
            {
                packetProfile.Record(iLength, OneServer.NowTime - dateTimeStart);
            }
        }
        public void NetStateSendPacketEventArgsConstructorTest()
        {
            NetState sendNetState = null; // TODO: 初始化为适当的值
            Packet   sendPack     = null; // TODO: 初始化为适当的值
            NetStateSendPacketEventArgs target = new NetStateSendPacketEventArgs(sendNetState, sendPack);

            Assert.Inconclusive("TODO: 实现用来验证目标的代码");
        }
 public void SendNetStateTest()
 {
     NetState sendNetState = null; // TODO: 初始化为适当的值
     Packet sendPack = null; // TODO: 初始化为适当的值
     NetStateSendPacketEventArgs target = new NetStateSendPacketEventArgs( sendNetState, sendPack ); // TODO: 初始化为适当的值
     NetState actual;
     actual = target.SendNetState;
     Assert.Inconclusive( "验证此测试方法的正确性。" );
 }
Esempio n. 4
0
        /// <summary>
        /// 输出发送信息包的日志
        /// </summary>
        private static void RealmSendPacket(object sender, NetStateSendPacketEventArgs eventArgs)
        {
            PacketBuffer sendBuffer = eventArgs.SendPacket.AcquireBuffer();

            //////////////////////////////////////////////////////////////////////////
            // 输出信息包的日志
            //////////////////////////////////////////////////////////////////////////
            ProcessNet.LogClientPack(sendBuffer.Buffer, sendBuffer.Length, "Realm_Out_Packets.log", eventArgs.SendNetState.ToString(), eventArgs.SendPacket.PacketID, RealmOpCodeName.GetRealmOpCodeName(eventArgs.SendPacket.PacketID));
            //////////////////////////////////////////////////////////////////////////
        }
        public void SendNetStateTest()
        {
            NetState sendNetState = null;                                                                 // TODO: 初始化为适当的值
            Packet   sendPack     = null;                                                                 // TODO: 初始化为适当的值
            NetStateSendPacketEventArgs target = new NetStateSendPacketEventArgs(sendNetState, sendPack); // TODO: 初始化为适当的值
            NetState actual;

            actual = target.SendNetState;
            Assert.Inconclusive("验证此测试方法的正确性。");
        }
        public void IsCancelSendTest()
        {
            NetState sendNetState = null;                                                                 // TODO: 初始化为适当的值
            Packet   sendPack     = null;                                                                 // TODO: 初始化为适当的值
            NetStateSendPacketEventArgs target = new NetStateSendPacketEventArgs(sendNetState, sendPack); // TODO: 初始化为适当的值
            bool expected = false;                                                                        // TODO: 初始化为适当的值
            bool actual;

            target.IsCancelSend = expected;
            actual = target.IsCancelSend;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("验证此测试方法的正确性。");
        }
Esempio n. 7
0
        private void InternalSend( Packet packet )
        {
            if ( this.Running == false || m_BlockSend == true )
            {
                // 表示已处理发送
                packet.Release();
                return;
            }

            // 连接的通知事件
            EventHandler<NetStateSendPacketEventArgs> tempEvent = m_EventSendPacket;
            if ( tempEvent != null )
            {
                NetStateSendPacketEventArgs sendEventArgs = new NetStateSendPacketEventArgs( this, packet );
                tempEvent( this, sendEventArgs );

                if ( sendEventArgs.IsCancelSend == true )
                {
                    // 表示已处理发送
                    packet.Release();
                    return;
                }
            }

            long iLength = 0;

            PacketProfile packetProfile = PacketProfile.GetOutgoingProfile( (byte)packet.PacketID );
            DateTime dateTimeStart = ( packetProfile == null ? DateTime.MinValue : DateTime.Now );
            {
                do
                {
                    PacketBuffer packetBuffer = packet.AcquireBuffer();
                    if ( packetBuffer.IsNULL == true )
                        throw new Exception( "NetState.InternalSend(...) - packetBuffer.IsNULL == true error!" );

                    byte[] byteBuffer = packetBuffer.Buffer;
                    long lLength = packetBuffer.Length;

                    // 加密数据
                    if ( m_Encoder != null )
                        m_Encoder.EncodeOutgoingPacket( this, ref byteBuffer, ref lLength );

                    m_SendQueue.Enqueue( byteBuffer, 0, lLength );
                } while ( false );

                // 表示已处理发送
                packet.Release();
            }
            if ( packetProfile != null )
                packetProfile.Record( iLength, DateTime.Now - dateTimeStart );
        }
 public void IsCancelSendTest()
 {
     NetState sendNetState = null; // TODO: 初始化为适当的值
     Packet sendPack = null; // TODO: 初始化为适当的值
     NetStateSendPacketEventArgs target = new NetStateSendPacketEventArgs( sendNetState, sendPack ); // TODO: 初始化为适当的值
     bool expected = false; // TODO: 初始化为适当的值
     bool actual;
     target.IsCancelSend = expected;
     actual = target.IsCancelSend;
     Assert.AreEqual( expected, actual );
     Assert.Inconclusive( "验证此测试方法的正确性。" );
 }
 public void NetStateSendPacketEventArgsConstructorTest()
 {
     NetState sendNetState = null; // TODO: 初始化为适当的值
     Packet sendPack = null; // TODO: 初始化为适当的值
     NetStateSendPacketEventArgs target = new NetStateSendPacketEventArgs( sendNetState, sendPack );
     Assert.Inconclusive( "TODO: 实现用来验证目标的代码" );
 }
Esempio n. 10
0
        /// <summary>
        /// 输出发送信息包的日志
        /// </summary>
        private static void AuthSendPacket( object sender, NetStateSendPacketEventArgs eventArgs )
        {
            PacketBuffer sendBuffer = eventArgs.SendPacket.AcquireBuffer();

            //////////////////////////////////////////////////////////////////////////
            // 输出信息包的日志
            //////////////////////////////////////////////////////////////////////////
            ProcessNet.LogClientPack( sendBuffer.Buffer, sendBuffer.Length, "Auth_Out_Packets.log", eventArgs.SendNetState.ToString(), eventArgs.SendPacket.PacketID, AuthOpCodeName.GetAuthOpCodeName( eventArgs.SendPacket.PacketID ) );
            //////////////////////////////////////////////////////////////////////////
        }