Example #1
0
        public async Task SendMSearchResponseAsync(IMSearchResponse mSearchResponse, IMSearchRequest mSearchRequest)
        {
            var wait = new Random();
            await Task.Delay(TimeSpan.FromMilliseconds(wait.Next(50, (int)mSearchRequest.MX.TotalMilliseconds)));

            if (mSearchResponse.ResponseCastMethod != CastMethod.Unicast)
            {
                await _httpListener.SendOnMulticast(ComposeMSearchResponseDatagram(mSearchResponse));
            }

            if (int.TryParse(mSearchRequest.TCPPORT, out int tcpSpecifiedRemotePort))
            {
                await SendOnTcp(mSearchRequest.HostIp, tcpSpecifiedRemotePort,
                                ComposeMSearchResponseDatagram(mSearchResponse));
            }
            else
            {
                await SendOnTcp(mSearchRequest.HostIp, mSearchRequest.HostPort,
                                ComposeMSearchResponseDatagram(mSearchResponse));
            }
        }
Example #2
0
        public async Task SendMSearchAsync(IMSearchRequest mSearch)
        {
            if (mSearch.SearchCastMethod == CastMethod.Multicast)
            {
                await _httpListener.SendOnMulticast(ComposeMSearchDatagram(mSearch));
            }

            if (mSearch.SearchCastMethod == CastMethod.Unicast)
            {
                await SendOnTcp(mSearch.HostIp, mSearch.HostPort, ComposeMSearchDatagram(mSearch));
            }
        }