Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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();
        }