Пример #1
0
        // Sending Server Announce Request.
        private void SendServerPDUOverDVC(PacketId_Values packetType, uint?clientId = null)
        {
            RdpefsPDU pdu = null;

            switch (packetType)
            {
            case PacketId_Values.PAKID_CORE_SERVER_ANNOUNCE:
                pdu = CreateServerAnnounceReqest();
                break;

            case PacketId_Values.PAKID_CORE_SERVER_CAPABILITY:
                pdu = CreateServerCoreCapabilityRequest();
                break;

            case PacketId_Values.PAKID_CORE_CLIENTID_CONFIRM:
                pdu = CreateServerClientIdConfirm(clientId);
                break;

            case PacketId_Values.PAKID_CORE_USER_LOGGEDON:
                pdu = new DR_CORE_USER_LOGGEDON();
                break;
            }

            if (pdu != null && rdpefsServer != null)
            {
                rdpefsServer.SendRdpefsPdu(pdu);
            }
            else
            {
                throw new InvalidOperationException("The sending pdu type is null: " + packetType.ToString());
            }
        }
        /// <summary>
        /// Encode a Server User Logged On packet
        /// </summary>
        /// <param name="packet"></param>
        /// <returns></returns>
        public static byte[] EncodeServerUserLoggedOn(DR_CORE_USER_LOGGEDON packet)
        {
            List <byte> buffer = new List <byte>();

            EncodeStructure(buffer, (ushort)(packet.Header.Component));
            EncodeStructure(buffer, (ushort)(packet.Header.PacketId));

            return(buffer.ToArray());
        }
        /// <summary>
        /// Create Server User Logged On packet
        /// </summary>
        /// <returns>DR_CORE_USER_LOGGEDON</returns>
        public static DR_CORE_USER_LOGGEDON CreateServerUserLoggedOn()
        {
            DR_CORE_USER_LOGGEDON logonPDU = new DR_CORE_USER_LOGGEDON();

            logonPDU.Header           = new RDPDR_HEADER();
            logonPDU.Header.Component = Component_Values.RDPDR_CTYP_CORE;
            logonPDU.Header.PacketId  = PacketId_Values.PAKID_CORE_USER_LOGGEDON;
            return(logonPDU);
        }