private void InternalStartNetworking() { Console.WriteLine(); if (!Network.Listen()) { Log.Error("An error occurred while attempting to connect."); } else { Console.WriteLine(Strings.Intro.started.ToString(Options.ServerPort)); } #if WEBSOCKETS WebSocketNetwork.Init(Options.ServerPort); Log.Pretty.Info(Strings.Intro.websocketstarted.ToString(Options.ServerPort)); Console.WriteLine(); #endif RestApi.Start(); if (!Options.UPnP || Instance.StartupOptions.NoNatPunchthrough) { return; } Console.WriteLine(); UpnP.ConnectNatDevice().Wait(5000); #if WEBSOCKETS UpnP.OpenServerPort(Options.ServerPort, Protocol.Tcp).Wait(5000); #endif UpnP.OpenServerPort(Options.ServerPort, Protocol.Udp).Wait(5000); if (RestApi.IsStarted) { RestApi.Configuration.Ports.ToList() .ForEach(port => UpnP.OpenServerPort(port, Protocol.Tcp).Wait(5000)); } Console.WriteLine(); Bootstrapper.CheckNetwork(); Console.WriteLine(); }
internal static void CheckNetwork() { //Check to see if AGD can see this server. If so let the owner know :) if (Options.OpenPortChecker && !Context.StartupOptions.NoNetworkCheck) { var serverAccessible = PortChecker.CanYouSeeMe(Options.ServerPort, out var externalIp); Console.WriteLine(Strings.Portchecking.connectioninfo); if (!string.IsNullOrEmpty(externalIp)) { Console.WriteLine(Strings.Portchecking.publicip, externalIp); Console.WriteLine(Strings.Portchecking.publicport, Options.ServerPort); Console.WriteLine(); if (serverAccessible) { Console.WriteLine(Strings.Portchecking.accessible); Console.WriteLine(Strings.Portchecking.letothersjoin); } else { Console.WriteLine(Strings.Portchecking.notaccessible); Console.WriteLine(Strings.Portchecking.debuggingsteps); Console.WriteLine(Strings.Portchecking.checkfirewalls); Console.WriteLine(Strings.Portchecking.checkantivirus); Console.WriteLine(Strings.Portchecking.screwed); Console.WriteLine(); if (!UpnP.ForwardingSucceeded()) { Console.WriteLine(Strings.Portchecking.checkrouterupnp); } } } else { Console.WriteLine(Strings.Portchecking.notconnected); } Console.WriteLine(); } }