protected void OnMessageReceived(object sender, DiscoveryMessageEventArgs e) { TestMessages TestMessage = new TestMessages(); string message = e.Message; message = message.Replace('\n', ' '); message = message.Replace('\r', ' '); message = message.Replace('\t', ' '); message = message.Replace(" ", " "); message = message.Replace(" ", " "); message = message.Replace(" ", " "); message = message.Replace(" ", " "); message = message.Replace("> <", "><"); message = message.Replace("> <", "><"); try { RD.ProbeMatchesType match = (RD.ProbeMatchesType)TestMessage.Parse_SoapMessage(message, typeof(RD.ProbeMatchesType)); DeviceDiscovered device = GetDevice(match, e.Source.Address); if (device != null) { DeviceDiscoveryEventArgs args = new DeviceDiscoveryEventArgs(device); if (Discovered != null) { Discovered(this, args); } } } catch { } }
private void ReceiveCallback(IAsyncResult result) { lock (SocketSync) { if ((Socket != null) && (Socket.Client != null)) { byte[] messageBytes; IPEndPoint messageSource = null; messageBytes = Socket.EndReceive(result, ref messageSource); if (MessageReceived != null) { DiscoveryMessageEventArgs args = new DiscoveryMessageEventArgs(); args.Message = Encoding.ASCII.GetString(messageBytes); args.Source = messageSource; MessageReceived(this, args); } AnswerReceivedEvent.Set(); Socket.BeginReceive(ReceiveCallback, null); //AnswerReceivedEvent.Reset(); } } }