///// <summary> ///// Broadcast a message ///// </summary> ///// <param name="message">message to be broadcast</param> //private void Broadcast(Messages.MessageBase message) //{ // IPEndPoint e = new IPEndPoint(DiscoveryAddress, Port); // Send(message, e); //} /// <summary> /// Raise the SearchReceived event /// </summary> /// <param name="e">arguments for the event</param> protected void OnSearchReceived(Events.SearchReceivedEventArgs e) { if (SearchReceived != null) { SearchReceived(this, e); } var content = OnSearchResponding(new Events.SearchRespondingEventArgs(Content, e.Sender)); var response = new Messages.DiscoveryResponseMessage(); response.Service = Services.FirstOrDefault(x => x.ServiceType == e.ServiceType); try { DelaySearchResponse(e.MaxWaitTime); response.Content = content; Send(response, e.Sender); OnSearchResponded(); } catch (Exception ex) { throw new DiscoveryException("Exception sending search response", ex); } }
///// <summary> ///// Broadcast a message ///// </summary> ///// <param name="message">message to be broadcast</param> //private void Broadcast(Messages.MessageBase message) //{ // IPEndPoint e = new IPEndPoint(DiscoveryAddress, Port); // Send(message, e); //} /// <summary> /// Raise the SearchReceived event /// </summary> /// <param name="e">arguments for the event</param> protected void OnSearchReceived(Events.SearchReceivedEventArgs e) { if (SearchReceived != null) SearchReceived(this, e); var content = OnSearchResponding(new Events.SearchRespondingEventArgs(Content, e.Sender)); var response = new Messages.DiscoveryResponseMessage(); response.Service = Services.FirstOrDefault(x => x.ServiceType == e.ServiceType); try { DelaySearchResponse(e.MaxWaitTime); response.Content = content; Send(response, e.Sender); OnSearchResponded(); } catch (Exception ex) { throw new DiscoveryException("Exception sending search response", ex); } }
internal DiscoveryReceivedEventArgs(Messages.DiscoveryResponseMessage message) { Sender = new IPEndPoint(IPAddress.Parse(message.Host), message.Port); Service = message.Service; }