public MobileMulticastClient(MobileNetworkSettings settings) { _settings = settings; _udpClient = new UdpSocketMulticastClient {TTL = settings.TTL}; _udpClient.MessageReceived = OnMessageReceived; }
public MulticastClient(NetworkSettings settings) { _settings = settings; _udpClient = new UdpSocketMulticastClient { TTL = settings.TTL }; }
private async Task <IObservable <IHttpRequestReponse> > GetUdpMulticastRequestResponseObservable( string ipAddr, int port, ICommunicationInterface communicationInterface = null, bool allowMultipleBindToSamePort = false) { _udpMultiCastListener = new UdpSocketMulticastClient(); var observeUdpRequest = await _udpMultiCastListener.ObservableMulticastListener( ipAddr, port, communicationInterface, allowMultipleBindToSamePort); var observable = Observable.Create <IHttpRequestReponse>( obs => { var disp = observeUdpRequest.Subscribe( udpSocket => { var stream = new MemoryStream(udpSocket.ByteData); var requestHandler = new HttpParserDelegate { HttpRequestReponse = { RemoteAddress = udpSocket.RemoteAddress, RemotePort = int.Parse(udpSocket.RemotePort), RequestType = RequestType.UDP } }; var result = _httpStreamParser.Parse(requestHandler, stream, Timeout); obs.OnNext(result); }, ex => { _udpMultiCastListener.Dispose(); obs.OnError(ex); }, () => { _udpMultiCastListener.Dispose(); obs.OnCompleted(); }); return(disp); }); return(observable); }
public MulticastClient(NetworkSettings settings) { _settings = settings; _udpClient = new UdpSocketMulticastClient {TTL = settings.TTL}; }