/// <summary> /// When a message is received on the specified UDP Multicast address/port. /// </summary> /// <remarks> /// Assumed to be not running under a thread safe context. As long as we don's access /// the socket referenced in the <see cref="MessageRequest"/> class we should be ok. /// <para></para> /// The buffer element is fine to access as it is created per call, regardless of which /// thread context has entered the ProcessMessage() method. /// </remarks> /// <param name="receivedByteCount"> /// The number of bytes available to read. /// </param> /// <param name="state"> /// The buffer state. /// </param> private void OnMessageReceived(int receivedByteCount, MessageRequest state) { if (receivedByteCount > 0) { try { state.Execute(); } catch (Exception ex) { m_Logger.Error("Exception detected handling message.", ex); } } }