UdpClient Receive не возвращается до 2-го вещания
Я думаю, что это действительно странно. Попытка использовать UdpClient для синхронного приема широковещательного сообщения, но не возвращается, хотя широковещание завершено. Только при последующей трансляции я получил сообщение. Я думаю, что есть ошибка где-то в рамках?
clientListener.BeginReceive(new AsyncCallback(RxBcastCallback), clientListener);
//this is passed as AsyncCall.AsyncState in the callback
.....
UdpClient udpListener = (UdpClient)AsyncCall.AsyncState;
IPEndPoint remoteEndPt = new IPEndPoint(IPAddress.Any, 0);
byte[] inBuffer = udpListener.Receive(ref remoteEndPt);
//does not return until subsequent broadcast
спасибо Кенни
1 ответ
Решение
Ваша конечная точка обратного вызова, вероятно, должна быть:
UdpClient udpListener = (UdpClient)AsyncCall.AsyncState;
IPEndPoint e = (IPEndPoint)((UdpState)(AsyncCall.AsyncState)).e;
byte[] inBuffer= udpListener.EndReceive(AsyncCall, ref e);