コード例 #1
0
ファイル: Program.cs プロジェクト: wzl0123/PortForward
        static void RunLocal(string[] config)
        {
            var mng = new LocalManager()
            {
                inputConn_Port  = int.Parse(config[1]),
                outputConn_Host = config[2],
                outputConn_Port = int.Parse(config[3])
            };


            Console.WriteLine($"当前为 本地端口转发工具:");
            Console.WriteLine($"inputConn_Port:{mng.inputConn_Port}");
            Console.WriteLine($"outputConn_Host:{mng.outputConn_Host}");
            Console.WriteLine($"outputConn_Port:{mng.outputConn_Port}");


            //定义显示输出
            if (config.Length <= 4 || "NoPrint" != config[4])
            {
                mng.ConsoleWriteLine = Console.WriteLine;
            }

            mng.ConsoleWriteLine("开始...");
            mng.StartLinstening();
        }
コード例 #2
0
ファイル: Commond.cs プロジェクト: serset/PortForward
        void RunClient(string[] config)
        {
            var mng = new ClientManager()
            {
                authToken       = config[1],
                server_Host     = config[2],
                outputConn_Port = int.Parse(config[3]),
                localConn_Host  = config[4],
                localConn_Port  = int.Parse(config[5])
            };

            int connectCount = int.Parse(config[6]);

            WriteLine($"当前为 端口桥接工具-客户端:");
            WriteLine($"authToken:{mng.authToken}");
            WriteLine($"server_Host:{mng.server_Host}");
            WriteLine($"outputConn_Port:{mng.outputConn_Port}");
            WriteLine($"localConn_Host:{mng.localConn_Host}");
            WriteLine($"localConn_Port:{mng.localConn_Port}");
            WriteLine($"connectCount:{connectCount}");

            //定义显示输出
            if (config.Length > 7 && "NoPrint" == config[7])
            {
                Logger.OnLog = (l, msg) => { }
            }
            ;

            WriteLine("开始...");
            mng.StartConnectThread(connectCount);
        }

        #endregion

        #region RunServer
        void RunServer(string[] config)
        {
            var mng = new ServerManager()
            {
                authToken       = config[1],
                inputConn_Port  = int.Parse(config[2]),
                outputConn_Port = int.Parse(config[3])
            };

            WriteLine($"当前为 端口桥接工具-服务端:");
            WriteLine($"authToken:{mng.authToken}");
            WriteLine($"inputConn_Port:{mng.inputConn_Port}");
            WriteLine($"outputConn_Port:{mng.outputConn_Port}");


            //定义显示输出
            if (config.Length > 4 && "NoPrint" == config[4])
            {
                Logger.OnLog = (l, msg) => { }
            }
            ;

            WriteLine("开始...");
            mng.StartLinstening();
        }

        #endregion

        #region RunLocal
        void RunLocal(string[] config)
        {
            var mng = new LocalManager()
            {
                inputConn_Port  = int.Parse(config[1]),
                outputConn_Host = config[2],
                outputConn_Port = int.Parse(config[3])
            };


            WriteLine($"当前为 本地端口转发工具:");
            WriteLine($"inputConn_Port:{mng.inputConn_Port}");
            WriteLine($"outputConn_Host:{mng.outputConn_Host}");
            WriteLine($"outputConn_Port:{mng.outputConn_Port}");


            //定义显示输出
            if (config.Length > 4 && "NoPrint" == config[4])
            {
                Logger.OnLog = (l, msg) => { }
            }
            ;

            WriteLine("开始...");
            mng.StartLinstening();
        }

        #endregion

        public void PrintHelp()
        {
            #region print Help
            WriteLine("version : " + System.Diagnostics.FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetEntryAssembly().Location).FileVersion);
            WriteLine("author  : lith");
            WriteLine("代码地址: https://github.com/serset/PortForward");
            WriteLine("----Lith端口转发----");
            WriteLine("从参数获取配置信息,分为“本地端口转发工具”和“端口桥接工具”。");
            WriteLine("----本地端口转发工具----");
            WriteLine("     配置信息格式为:");
            WriteLine("         PortForwardLocal--inputConnPort--outputConnHost--outputConnPort--NoPrint");
            WriteLine("     Demo:");
            WriteLine("         dotnet PortForward.dll PortForwardLocal--8000--192.168.1.5--3384--NoPrint");
            WriteLine("         把本地的8000端口转发至 主机192.168.1.5的3384端口");
            WriteLine("     NoPrint:定义是否回显,若指定为NoPrint则不实时回显连接信息");
            WriteLine("");
            WriteLine("----端口桥接工具----");
            WriteLine("     客户端格式为:");
            WriteLine("         PortForwardClient--authToken--serverHost--outputConnPort-localConnHost--localConnPort--ConnectCount--NoPrint");
            WriteLine("     服务端格式为:");
            WriteLine("         PortForwardServer--authToken--inputConnPort--outputConnPort--NoPrint");
            WriteLine("     Demo:");
            WriteLine("         dotnet PortForward.dll PortForwardClient--authToken--192.168.1.100--6203--abc.com--3389--5");
            WriteLine("         dotnet PortForward.dll PortForwardServer--authToken--6202--6203");
            WriteLine("");
            WriteLine("     说明:");
            WriteLine("         把服务端(serverHost)的 inputConnPort端口转发至 客户端连接的 主机localConnHost的端口localConnPort");
            WriteLine("         服务端和客户端通过端口outputConnPort连接");
            WriteLine("     autoToken   :权限校验字段,服务端和客户端必须一致");
            WriteLine("     ConnectCount:客户端保持的空闲连接个数,推荐5");
            WriteLine("     NoPrint     :定义是否回显,若指定为NoPrint则不实时回显连接信息,可不指定");
            WriteLine("----------------");
            WriteLine("");
            #endregion
        }
    }