示例#1
0
        /// <summary>
        /// Sends a packet to the realm server.
        /// </summary>
        /// <param name="type">The type of packet to send.</param>
        /// <param name="data">The packet data (Not the packet header).</param>
        public void SendPacket(RealmServerPacketType type, byte[] data)
        {
            RealmServerPacket packet;

            // Header length is 4 bytes, so total packet length is 4 + data length
            packet.Length = (ushort)(data.Length + 4);
            packet.Id     = type;
            packet.Data   = data;

            if (settings.ShowPackets)
            {
                LogDebug("C -> S: " + packet);
            }
            if (settings.ShowPacketData)
            {
                LogDebug(Util.GetPacketDump(packet.GetBytes(), false));
            }

            byte[] packetBytes = packet.GetBytes();
            try
            {
                client.GetStream().Write(packetBytes, 0, packetBytes.Length);
            }
            catch (Exception ex)
            {
                if (!IsDisconnecting)
                {
                    Fail(FailureArgs.FailureTypes.FailedToSend, "Failed to send packet to realm server: " + ex.Message);
                }
                return;
            }
        }
示例#2
0
        /// <summary>
        /// Sends a packet to the realm server.
        /// </summary>
        /// <param name="type">The type of packet to send.</param>
        /// <param name="data">The packet data (Not the packet header).</param>
        public void SendPacket(RealmServerPacketType type, byte[] data)
        {
            RealmServerPacket packet;

            // Header length is 4 bytes, so total packet length is 4 + data length
            packet.Length = (ushort)(data.Length + 4);
            packet.Id = type;
            packet.Data = data;

            if (settings.ShowPackets)
            {
                LogDebug("C -> S: " + packet);
            }
            if (settings.ShowPacketData)
            {
                LogDebug(Util.GetPacketDump(packet.GetBytes(), false));
            }

            byte[] packetBytes = packet.GetBytes();
            try
            {
                client.GetStream().Write(packetBytes, 0, packetBytes.Length);
            }
            catch (Exception ex)
            {
                if (!IsDisconnecting)
                {
                    Fail(FailureArgs.FailureTypes.FailedToSend, "Failed to send packet to realm server: " + ex.Message);
                }
                return;
            }
        }