コード例 #1
0
ファイル: Discovery.cs プロジェクト: kudrinyaroslav/ON-0110
        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
            {
            }
        }
コード例 #2
0
 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();
         }
     }
 }