UdpClient не может заставить ReceiveTimeout работать с BeginReceive

Метод начинается с вызова ReceiveAuthPacket, и я очень хочу, чтобы он прослушивал пакеты в течение 3 секунд, а затем закрывался... что я пытался сделать с "u.Client.ReceieveTimeout = 3000", но это не работает... любые идеи ?

        private void ReceiveAuthPacket()
        {
            IPEndPoint e = new IPEndPoint(IPAddress.Any, 5001);
            UdpClient u = new UdpClient(e);

            UdpState s = new UdpState();
            s.E = e;
            s.U = u;

            Console.WriteLine("Listening for Messages: ");
            u.BeginReceive(new AsyncCallback(ReceiveCallback), s);
        }

        private void ReceiveCallback(IAsyncResult ar)
        {
            UdpClient u = (UdpClient)((UdpState)(ar.AsyncState)).U;
            IPEndPoint e = (IPEndPoint)((UdpState)(ar.AsyncState)).E;
            u.Client.ReceiveTimeout = 3000;

            Byte[] receiveBytes = u.EndReceive(ar, ref e);
            string receiveString = Encoding.ASCII.GetString(receiveBytes);

            Console.WriteLine("Received: {0}", receiveString);
            MessageReceived = true;

            string errMsg = "";
            if (AuthMessageParser.ParseMessage(receiveString, ref errMsg))
                Authenticated = true;
            else
            {
                ErrorMessage += errMsg;
                Authenticated = false;
            }
        }

person user1189352    schedule 15.05.2014    source источник
comment
о черт...... пропустил это... есть идеи, как я могу добиться того, чего хочу достичь?   -  person user1189352    schedule 16.05.2014
comment
Перейдите по ссылке «см. здесь» в моем предыдущем комментарии, который (к сожалению) не даст вам решения, однако даст вам несколько советов о том, как вы должны это сделать.   -  person    schedule 16.05.2014