53 lines
1.7 KiB
C#
53 lines
1.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using log4net;
|
|
|
|
namespace LS100PortProxy
|
|
{
|
|
/// <summary>
|
|
/// http://msdn.microsoft.com/en-GB/library/bbx2eya8.aspx
|
|
/// Async server socket msdn
|
|
/// http://msdn.microsoft.com/en-us/library/5w7b7x5f.aspx
|
|
/// </summary>
|
|
class Program
|
|
{
|
|
static void Main(string[] args)
|
|
{
|
|
log4net.Config.XmlConfigurator.Configure();
|
|
ILog _log = LogManager.GetLogger("Main");
|
|
_log.Info("PortProxy started");
|
|
if ((args.Length != 4) && (args.Length != 0))
|
|
{
|
|
Console.WriteLine("Usage: <progname> <interface #> <remoteaddress> <clientport> <serverport>");
|
|
Console.WriteLine("<progname> -> outputs interfaces");
|
|
return;
|
|
}
|
|
|
|
if (args.Length == 0)
|
|
{
|
|
Console.WriteLine(MultiplexManager.ListIfs());
|
|
return;
|
|
}
|
|
|
|
int ifIdx = Convert.ToInt32(args[0]);
|
|
string address = args[1];
|
|
int clientPort = Convert.ToInt32(args[2]);
|
|
int serverPort = Convert.ToInt32(args[3]);
|
|
|
|
MultiplexManager manager = new MultiplexManager(ifIdx, address, clientPort, serverPort);
|
|
manager.StartServer();
|
|
|
|
manager.StartClient();
|
|
|
|
Console.WriteLine("Port proxy läuft. Beliebige Taste drücken um zu beenden...");
|
|
Console.ReadKey();
|
|
Console.WriteLine("stopping..");
|
|
manager.StopServer();
|
|
Console.WriteLine("stopped.");
|
|
_log.Info("PortProxy stopped");
|
|
}
|
|
}
|
|
}
|