private WebServer(string remoteHostIp, int remotePort, string baseAddress) { LocalHost = IPAddress.Loopback.ToString(); RemoteHost = remoteHostIp; RemotePort = remotePort; _remoteUriService = new RemoteUriWebService(baseAddress); Random r = new Random(); // if remote port is between 10000 and 32000, select a port in the same range. // R Help uses ports in that range. int localPortMin = (RemotePort >= 10000 && RemotePort <= 32000)? 10000: 49152; int localPortMax = (RemotePort >= 10000 && RemotePort <= 32000) ? 32000 : 65535; while (true) { _listener = new HttpListener(); LocalPort = r.Next(localPortMin, localPortMax); _listener.Prefixes.Add($"http://{LocalHost}:{LocalPort}/"); try { _listener.Start(); } catch (HttpListenerException) { _listener.Close(); continue; } break; } }
private WebServer(string remoteHostIp, int remotePort, string baseAddress) { LocalHost = IPAddress.Loopback.ToString(); RemoteHost = remoteHostIp; RemotePort = remotePort; _remoteUriService = new RemoteUriWebService(baseAddress); }
private WebServer(string remoteHostIp, int remotePort, string baseAddress, string name, ICoreServices services, IConsole console) { _name = name.ToUpperInvariant(); _services = services; _console = console; LocalHost = IPAddress.Loopback.ToString(); RemoteHost = remoteHostIp; RemotePort = remotePort; _remoteUriService = new RemoteUriWebService(baseAddress); }
private WebServer(string remoteHostIp, int remotePort, string baseAddress, string name, IActionLog log, IConsole console) { _name = name.ToUpperInvariant(); _baseAddress = baseAddress; _log = log; _console = console; LocalHost = IPAddress.Loopback.ToString(); RemoteHost = remoteHostIp; RemotePort = remotePort; _remoteUriService = new RemoteUriWebService(baseAddress, log, console); }