Метод начинается с вызова 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;
}
}