/// <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); }
/// <summary> /// 发送消息到服务器 /// </summary> /// <param name="package">要发送的消息</param> public void Send(CPackageBase package) { if (m_Sender != null) { CMessage message = CPackageBase.CreateMessage(package); // 加入待发队列 m_Sender.PushMessageToSend(message); } }