/// <summary>
        /// Begins the streaming.
        /// </summary>
        /// <param name="audioTrack">The audio track.</param>
        public void BeginStreaming(TrackStreamRequest audioTrack)
        {
            streamedAudio = true;
            this.udpEndPoint = audioTrack.Connection;
            string trackLocation = audioPath + audioTrack.Track.TrackName + audioTrack.Track.TrackExtension;

            audioSender = new AwesomeAudio.UDPSender(udpEndPoint.Address.ToString(), trackLocation);
            audioSender.StartFileSend();
        }
        /// <summary>
        /// Requests that the server being streaming the specified track.
        /// </summary>
        /// <param name="track">The track to stream</param>
        public TrackStreamRequestResult StartAudioStream(Track track, IPEndPoint address)
        {
            TrackStreamRequest request = new TrackStreamRequest(track, 0, address);
            if (Connected)
            {
                byte[] send;
                ObjectSerialization.Serialize(request, out send);

                // Make a request to the server to register the user. 
                if (MakeBlockingRequest(ref send, PacketType.StartAudioStream, PacketType.StartAudioStream))
                {
                    // Deserialize the response.
                    TrackStreamRequestResult result = new TrackStreamRequestResult();
                    return (TrackStreamRequestResult)ObjectSerialization.Deserialize(response, result.GetType());
                }
            }
            return TrackStreamRequestResult.UnknownResult; // Who knows what happened.
        }