/// <summary> /// Process received messages /// </summary> /// <param name="stateInfo">A <c>TaskInfo</c> object containing the received message data</param> protected void ParseResponse(object stateInfo) { if (!IsListening) { return; } TaskInfo t = (TaskInfo)stateInfo; Messages.MessageBase msg = Parser.Parse(t.Data); if (msg == null) { return; } HandleMessage(msg, t.EndPoint); }
//internal IAsyncResult Send(Messages.MessageBase message, IPEndPoint endpoint, AsyncCallback receiveCallback) //{ // message.Host = DiscoveryAddress.ToString(); // message.Port = Port; // message.Content = Content; // using (UdpClient u = new UdpClient()) // { // byte[] buffer = message.ToArray(); // u.ExclusiveAddressUse = false; // u.Send(buffer, buffer.Length, endpoint); // if (receiveCallback != null) // return u.BeginReceive(receiveCallback, new UdpState(u)); // else // return null; // } //} //internal void Send(Messages.MessageBase message, IPEndPoint endpoint) //{ // message.Host = DiscoveryAddress.ToString(); // message.Port = Port; // message.Content = Content; // var buffer = message.ToArray(); // _Listener.Send(buffer, buffer.Length, endpoint); //} //protected void CheckClient() //{ // if (Port == 0 || Port < 0) // throw new ArgumentOutOfRangeException("Port"); // if (_Listener == null) // _Listener = new UdpClient(Port); //} public void Send(Messages.MessageBase message, IPEndPoint endpoint) { Send(new Messages.MessageBase[] { message }, endpoint); }