示例#1
0
 public void From(RemoteID in_remote, CMessage in_msg, PacketType in_pkID, CPackOption in_op)
 {
     this.remote = in_remote;
     this.msg    = in_msg;
     this.pkID   = in_pkID;
     this.pkop   = in_op;
 }
示例#2
0
        public void WriteStart(PacketType pkType, CPackOption pkOption, Int16 PkInternalValue = 0, bool isIDL = false)
        {
            if (isIDL)
            {
                if (pkType < PacketType.PacketType_User || pkType >= PacketType.PacketType_MaxCount)
                {
                    // error
                    return;
                }
            }
            else
            {
                if (pkType == PacketType.PacketType_Internal)
                {
                }
                else if (pkType == PacketType.PacketType_User)
                {
                    // 사용자 패킷인경우 일단 관리되게끔 하자
                }
            }

            this.ResetPosition();
            Marshaler.Write(this, pkOption);
            Marshaler.Write(this, pkType);
        }
示例#3
0
        public bool PacketSend(RemoteID remote, CPackOption pko, CMessage sMsg)
        {
            if (this.owner == null)
            {
                return(false);
            }

            return(owner.Send(remote, sMsg, pko));
        }
示例#4
0
 public static void Write(CMessage msg, CPackOption p)
 {
     msg.Write(p.m_Dummy);
     msg.Write(p.m_remote);
     msg.Write(p.m_from);
     msg.Write(p.m_protocol);
     msg.Write(p.m_pack_mode);
     msg.Write(p.m_dmy_ex1);
     msg.Write(p.m_dmy_ex2);
 }
示例#5
0
        public PacketType ReadStart(out CPackOption op)
        {
            position = 0;

            Marshaler.Read(this, out op);

            PacketType pkType = (PacketType)BitConverter.ToInt16(this.buffer, position);

            position += 2;
            return(pkType);
        }
示例#6
0
        public static void Read(CMessage msg, out CPackOption p)
        {
            CPackOption data = new CPackOption();

            msg.Read(out data.m_Dummy);
            msg.Read(out data.m_remote);
            msg.Read(out data.m_from);
            msg.Read(out data.m_protocol);
            msg.Read(out data.m_pack_mode);
            msg.Read(out data.m_dmy_ex1);
            msg.Read(out data.m_dmy_ex2);
            p = data;
        }
示例#7
0
        protected void PreparePacket(RemoteID remote, RemoteID from, CMessage msg, CPackOption op)
        {
            if (op.m_pack_mode == PacketMode8.PM_Encrypt_Mode)
            {
                msg.Encrypt();
            }

            // remote target처리
            Int32 remote_target = (Int32)remote;

            byte[] temp_remote = BitConverter.GetBytes(remote_target);
            temp_remote.CopyTo(msg.buffer, 4);      // CPackOption의 순서에 따라 정확한 위치에 덮어써준다

            // remote from
            Int32 remote_from = (Int32)from;

            temp_remote = BitConverter.GetBytes(remote_from);
            temp_remote.CopyTo(msg.buffer, 8);     // CPackOption의 순서에 따라 정확한 위치에 덮어써준다
        }
示例#8
0
 public virtual bool Send(RemoteID remote, CMessage msg, CPackOption op)
 {
     return(false);
 }
示例#9
0
 protected virtual bool RecvInternalMessage(RemoteID remote, PackInternal pkID, CMessage msgData, CPackOption op)
 {
     return(false);
 }