I think this is really weird. Tried to use UdpClient to synchronously receive broadcast msg, but it does not return although the broadcast has completed. Only on subsequent broadcast did I get the message. I think there's a bug somewhere within the framework?
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
thanks, Kenny