static void Main(string[] args) { if (args.Length != 1) { Console.WriteLine("Expected 1 argument (the port number) but you gave {0}", args.Length); return; } UInt16 port = UInt16.Parse(args[0]); NpcReflector npcReflector = new NpcReflector( new Device(), new UsbImpl(), typeof(StaticClass)); npcReflector.PrintInformation(Console.Out); INpcHtmlGenerator htmlGenerator = new DefaultNpcHtmlGenerator("NpcServicePage", npcReflector); Boolean useWrapper = true; if (useWrapper) { WrapperExample(npcReflector, htmlGenerator, port); } else { NoWrapperExample(npcReflector, htmlGenerator, port); } }
static void Main(string[] args) { Options options = new Options(); List <String> nonOptionArgs = options.Parse(args); // // Initialize Static Data // TmpAccessorServer.GlobalTlsSettings = new TlsSettings(false); TmpAccessorServer.SelectServer = new SelectServer(false, new Buf(8192)); // // Add Tunnel Listeners from command line arguments // if (nonOptionArgs.Count > 0) { for (int i = 0; i < nonOptionArgs.Count; i++) { String tunnelListenerString = nonOptionArgs[i]; String[] tunnelListenerStrings = tunnelListenerString.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (tunnelListenerStrings.Length < 3) { options.ErrorAndUsage("A tunnel-listener must have at least 3 comma seperated values but '{0}' only had {1}", tunnelListenerString, tunnelListenerStrings.Length); Environment.Exit(1); } String serverName = tunnelListenerStrings[0]; String targetHost = tunnelListenerStrings[1]; UInt16 targetPort = UInt16.Parse(tunnelListenerStrings[2]); if (tunnelListenerStrings.Length == 3) { TmpAccessorServer.AddTunnelListener(serverName, false, targetHost, targetPort); } else if (tunnelListenerStrings.Length == 4) { UInt16 listenPort = UInt16.Parse(tunnelListenerStrings[3]); TmpAccessorServer.AddTunnelListener(serverName, false, targetHost, targetPort, listenPort); } else { options.ErrorAndUsage("A tunnel-listener may not have more than 4 comma seperated values but '{0}' had {1}", tunnelListenerString, tunnelListenerStrings.Length); Environment.Exit(1); } } } // // Setup NPC Server so long as it isn't disabled // if (!options.disableNpc.set) { NpcReflector = new NpcReflector(TmpAccessorServer.ControlInstance); HtmlGenerator = new DefaultNpcHtmlGenerator("Tmp Accessor", NpcReflector); IPAddress listenIP = IPAddress.Any; Socket npcSocket = new Socket(listenIP.AddressFamily, SocketType.Stream, ProtocolType.Tcp); npcSocket.Bind(new IPEndPoint(listenIP, Tmp.DefaultNpcControlPort)); npcSocket.Listen(8); TmpAccessorServer.SelectServer.control.AddListenSocket(npcSocket, NpcAcceptCallback); } // // Setup Tmp tunnel server // { IPAddress listenIP = IPAddress.Any; Socket listenSocket = new Socket(listenIP.AddressFamily, SocketType.Stream, ProtocolType.Tcp); listenSocket.Bind(new IPEndPoint(listenIP, Tmp.DefaultPort)); listenSocket.Listen(8); TmpAccessorServer.SelectServer.control.AddListenSocket(listenSocket, TmpAccessorServer.AcceptCallback); } TmpAccessorServer.SelectServer.Run(); }