/// <summary>
        /// Extension shorthand for sending unreliable messages.
        /// </summary>
        /// <typeparam name="TTag">Type of tag used.</typeparam>
        /// <param name="client">IClient to which the message is sent.</param>
        /// <param name="message">Message object that inherits from IDarkRiftMessage</param>
        public static bool SendUdpMessage <TTag>(this IClient client, IDarkRiftMessage <TTag> message)
            where TTag : struct, Enum, IConvertible
        {
            using (DarkRiftWriter writer = DarkRiftWriter.Create())
            {
                writer.Write(message);

                using (DarkRift.Message msg = DarkRift.Message.Create(Convert.ToUInt16(message.Tag), writer))
                    return(client.SendMessage(msg, SendMode.Unreliable));
            }
        }
        /// <summary>
        /// Extension shorthand for sending reliable messages.
        /// </summary>
        /// <typeparam name="TTag">Type of the message that inherits from IMessage & IDarkRiftSerializable</typeparam>
        /// <param name="client">Client to which this should be sent.</param>
        /// <param name="message">Message object</param>
        public static void SendMessageReliable <TTag>(this DarkRiftClient client, IDarkRiftMessage <TTag> message)
            where TTag : struct, Enum, IConvertible
        {
            using (DarkRiftWriter writer = DarkRiftWriter.Create())
            {
                writer.Write(message);

                using (DarkRift.Message msg = DarkRift.Message.Create(Convert.ToUInt16(message.Tag), writer))
                    client.SendMessage(msg, SendMode.Reliable);
            }
        }
 /// <summary>
 /// Extension shorthand for sending unreliable messages to all clients in a collection, excluding one or multiple clients.
 /// </summary>
 /// <typeparam name="TTag"></typeparam>
 /// <param name="clients"></param>
 /// <param name="message"></param>
 /// <param name="exclusionList">List of IClients to exclude.</param>
 public static void SendUdpMessageToAllExcept <TTag>(this IEnumerable <IClient> clients, IDarkRiftMessage <TTag> message, IEnumerable <IClient> exclusionList)
     where TTag : struct, Enum, IConvertible
 {
     foreach (var c in clients.Except(exclusionList))
     {
         c.SendUdpMessage(message);
     }
 }
 /// <summary>
 /// Extension shorthand for sending unreliable messages to all clients in a collection.
 /// </summary>
 /// <typeparam name="TTag"></typeparam>
 /// <param name="clients"></param>
 /// <param name="message"></param>
 public static void SendUdpMessageToAll <TTag>(this IEnumerable <IClient> clients, IDarkRiftMessage <TTag> message)
     where TTag : struct, Enum, IConvertible
 {
     foreach (var c in clients)
     {
         c.SendTcpMessage(message);
     }
 }