Example #1
0
        /// <summary>
        /// 伪造一个对象发送到收线程来伪造服务器消息
        /// 一般情况下
        /// 收线程收到字节流 -> 反序列化到CMessage -> 反射创建对象 -> FromMessage填充数据 -> 执行委托
        /// 这里是
        /// 伪造一个对象 -> ToMessage()得到CMessage -> 反射创建对象 -> FromMessage填充数据 -> 执行委托
        /// </summary>
        /// <param name="package">消息对象</param>
        /// <param name="Length">消息数据长度
        ///      正常收消息时
        ///      字节流的大小由包头提供了
        ///      属于精确的分配内存空间
        ///      不会有问题
        ///
        ///      而伪造消息进行收取时
        ///      没有包头提供消息大小
        ///      因此提供默认的第二个参数来指定消息大小
        ///      如果伪造的消息过大
        ///      可以增大本值来确保不会产生数组越界的问题
        /// </param>
        public void FakePackageToReceive(CPackageBase package)
        {
            CMessage msg = CPackageBase.CreateMessage(package);

            // 加入待收队列
            FakeMessageToReceive(ref msg);
        }
Example #2
0
        /// <summary>
        /// 发送消息到服务器
        /// </summary>
        /// <param name="package">要发送的消息</param>
        public void Send(CPackageBase package)
        {
            if (m_Sender != null)
            {
                CMessage message = CPackageBase.CreateMessage(package);

                // 加入待发队列
                m_Sender.PushMessageToSend(message);
            }
        }