示例#1
0
        private static async void DeviceFoundAsync(object sender, DeviceEventArgs e)
        {
            if (gatewayAddress.ToString() == e.Device.DeviceEndpoint.Address.ToString())
            {
                NatUtility.StopDiscovery();
                Mapping mapping       = new Mapping(Protocol.Tcp, PORT, PORT);
                var     mappingResult = await e.Device.CreatePortMapAsync(mapping);

                System.Console.WriteLine($"Server mapped to {mappingResult.PrivatePort} on router port {mappingResult.PublicPort}");
                string hostName   = Dns.GetHostName();
                string myIp       = Dns.GetHostEntry(hostName).AddressList[0].ToString();
                var    externalIp = await e.Device.GetExternalIPAsync();

                gatewayDevice = e.Device;

                await Task.Run(() =>
                {
                    BackendManager.ServerPing();
                });
            }
        }