Example #1
0
        public void ExecuteCommands()
        {
            var client = new CacheClient();
            InProcessChannel channel = new InProcessChannel();

            client.Channel = channel;
            Server.Server server = new Server.Server(new ServerConfig())
            {
                Channel = channel
            };
            server.Start();


            client.RegisterTypeIfNeeded(typeof(TradeLike));


            var serverDesc = client.GetClusterInformation();

            Assert.AreEqual(serverDesc.Schema.Length, 1);
            CommandLineParser parser = new CommandLineParser(serverDesc);

            CommandBase cmd = parser.Parse("desc");

            cmd.TryExecute(client);


            cmd = parser.Parse("desc TRADELIKE");
            cmd.TryExecute(client);


            cmd = parser.Parse("count from TRADELIKE where folder=aaa ");
            cmd.TryExecute(client);
        }
Example #2
0
        public void Data()
        {
            ResetState();

            var server = new Server.Server(7200, OnData, null, null);

            server.Start();

            var client = Client.Create(null, null, null);

            client.Connect(new IPEndPoint(IPAddress.Loopback, 7200));

            var data = new byte[5] {
                85, 29, 33, 12, 196
            };

            client.SendData(data);

            _waiter.Wait();
            Assert.True(_received);
            Assert.NotNull(_receivedData);
            for (int i = 0; i < data.Length; i++)
            {
                Assert.Equal(data[i], _receivedData[i]);
            }
        }
Example #3
0
        static void Main(string[] args)
        {
            Console.WriteLine("NOTE");
            Console.WriteLine("This demo shows how-to secure your server using restricted app domain.");
            Console.WriteLine("You may change `FileIOPermission` parameter to allow querying server file system.");
            Console.WriteLine($"See {typeof(Program).FullName} ...");

            const string ip   = "127.0.0.1";
            const int    port = 1234;

            Console.WriteLine("\n\n1st demo: running server in default app domain (full-trust -> unsecured)");
            using (var server = new Server(ip, port))
            {
                server.Start();
                new Client(ip, port).Run();
            }

            Console.WriteLine("\n\n2nd demo: running server in restricted app domain (partial-trust)");
            var serverDomain = CreateServerAppDomain(
                new FileIOPermission(PermissionState.None), // <-- this prevents clients to enumerate the server's file system
                new SocketPermission(NetworkAccess.Accept, TransportType.Tcp, ip, port));

            using (var server = Create <Server>(serverDomain, ip, port))
            {
                server.Start();
                new Client(ip, port).Run();
            }

            Console.WriteLine("\n\nHit enter to exit");
            Console.ReadLine();
        }
Example #4
0
 static void Main(string[] args)
 {
     connection = new Server.Server();
     connection.OnServerEvent += ShowMessage;
     connection.Start();
     Console.ReadLine();
 }
        public async Task AsyncClient_ConnectMultipleClientsToServer_ConnectionsSucceed()
        {
            var port = Network.GetTcpPort();
            var uriString = string.Format("http://localhost:{0}", port);
            var uri = new Uri(uriString);

            var applicationContext = Substitute.For<IApplicationContext>();
            using (var server = new Server.Server(uri))
            {
                server.Start(applicationContext);

                var clients = new List<Client.AsyncClient>();
                const int NumClients = 100;
                var clientReceivedMessageCount = 0;
                for (var i = 0; i < NumClients; i++)
                {
                    var client = new Client.AsyncClient(uri);
                    client.OnMessage += (sender, eventArgs) => clientReceivedMessageCount++;
                    var connected = await client.Connect(Client.Enums.TransportType.ServerSentEvents);
                    Assert.IsTrue(connected);
                    clients.Add(client);
                }
                Assert.AreEqual(NumClients, clients.Count);
                server.SendMessage("x");
                foreach (var client in clients)
                {
                    client.Dispose();
                }

                // Probably won't receive all messages - no sleep or synchronisation implemented to ensure exactly NumClients messages
                Assert.IsTrue(clientReceivedMessageCount > 0);
                Assert.IsTrue(clientReceivedMessageCount <= NumClients);
            }
        }
        public void Init()
        {
            _client = new CacheClient();
            var channel = new InProcessChannel();

            _client.Channel = channel;


            _server = new Server.Server(new ServerConfig())
            {
                Channel = channel
            };
            _server.Start();

            _client.RegisterTypeIfNeeded(typeof(CacheableTypeOk));

            var cfg = new ClientConfig();

            cfg.LoadFromFile("CacheClientConfig.xml");

            foreach (var description in cfg.TypeDescriptions)
            {
                if (description.Value.FullTypeName == "UnitTests.TestData.Trade")
                {
                    _client.RegisterTypeIfNeeded(typeof(Trade), description.Value);
                }
            }
        }
Example #7
0
        public static async Task Main(string[] args)
        {
            const string directory = "squirrelayserver-log";

            Directory.CreateDirectory(directory);
            var date = DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss");

            using var fileStream   = File.OpenWrite($"{directory}/log_{date}.txt");
            using var streamWriter = new StreamWriter(fileStream);
            var logger = new Logger(streamWriter);

            NetDebug.Logger = logger;

            Console.CancelKeyPress += (_, _) => logger.Flush();

            try
            {
                // Load config
                var path   = args.Length > 0 && File.Exists(args[0]) ? args[0] : DefaultConfigPath;
                var config = await Config.LoadFromFileAsync(path);

                NetDebug.Logger?.WriteNet(NetLogLevel.Info, $"Config is loaded from '{path}'.");

                // Start server
                var server = new Server.Server(config, Options.DefaultOptions);
                await server.Start();
            }
            finally
            {
                logger.Flush();
            }
        }
Example #8
0
        public void Init()
        {
            _client = new CacheClient();
            var channel = new InProcessChannel();

            _client.Channel = channel;
            _server         = new Server.Server(new ServerConfig())
            {
                Channel = channel
            };
            _server.Start();

            _client.RegisterTypeIfNeeded(typeof(CacheableTypeOk));
            _client.RegisterTypeIfNeeded(typeof(TradeLike));

            var serverDesc = _client.GetClusterInformation();

            _parser = new CommandLineParser(serverDesc);

            Logger.CommandLogger = _logger;

            if (File.Exists("export_test.json"))
            {
                File.Delete("export_test.json");
            }
        }
Example #9
0
        protected override async Task OnStart(string[] args)
        {
            _server         = new Octgn.Server.Server(_config, HostedGame, BroadcastPort);
            _server.OnStop += Server_OnStop;

            await _server.Start();

            await base.OnStart(args);
        }
Example #10
0
 static void Main(string[] args)
 {
     Server.Server server = new Server.Server();
     server.Start();
     //RemotingConfiguration.Configure("Test.exe.config", false);
     Console.ReadKey();
     server.Stop();
     Console.ReadKey();
 }
Example #11
0
        public void Start()
        {
            IPAddress  ipa           = IPAddress.Parse(ListenIp);
            IPEndPoint localEndPoint = new IPEndPoint(ipa, ListenPort);

            server.Init();
            server.Start(localEndPoint, "\n", handle);
            _logger.LogInformation($"监听客户端 -> {ListenIp}:{ListenPort}");
        }
Example #12
0
        public void Start(IListenerDispatcher requestDispatcher, int backlog = 100)
        {
            _requestDispatcher = requestDispatcher;

            IPAddress  ipa           = IPAddress.Parse(ListenIp);
            IPEndPoint localEndPoint = new IPEndPoint(ipa, ListenPort);

            server.Init();
            server.Start(localEndPoint, "\r\n\r\n", handle);
            _logger.LogInformation($"监听客户端 -> {ListenIp}:{ListenPort}");
        }
        public void Server_CreateAndStartServer_Starts()
        {
            var port = Network.GetTcpPort();
            var uriString = string.Format("http://localhost:{0}", port);
            var uri = new Uri(uriString);

            var applicationContext = Substitute.For<IApplicationContext>();
            using (var server = new Server.Server(uri))
            {
                server.Start(applicationContext);
            }
        }
Example #14
0
        public static void Run(
            bool doRunServer = true,
            bool doRunClient = true)
        {
            var _cancellationTokenSource = new CancellationTokenSource();

            if (doRunServer)
            {
                var _serverTask = new Task(
                    () =>
                {
                    var _listener = new Server.Server(
                        Program.Configuration.Port,
                        new Metric.Inv.v3.Server.IStatisticsProcessor[] { new Metric.Inv.v3.Server.ConsoleWriterStatisticsProcessor() });
                    _listener.Start();
                },
                    _cancellationTokenSource.Token,
                    TaskCreationOptions.LongRunning);
                _serverTask.Start();
            }

            if (doRunClient)
            {
                var _clientTask = new Task(
                    () =>
                {
                    while (true)
                    {
                        _cancellationTokenSource.Token.ThrowIfCancellationRequested();

                        var _worker = new Worker();
                        using (var _timer = Program.Metrics.StartTimer("Program.Work"))
                        {
                            _worker.DoWork();
                        }
                    }
                },
                    _cancellationTokenSource.Token,
                    TaskCreationOptions.LongRunning);
                _clientTask.Start();
            }

            var _lineRead = string.Empty;

            while (_lineRead != "x")
            {
                Console.WriteLine("Hit x to stop ");
                _lineRead = Console.ReadLine();
            }

            _cancellationTokenSource.Cancel();
        }
        public void Init()
        {
            _serverChannel = new TcpServerChannel();

            _server = new Server.Server(new ServerConfig())
            {
                Channel = _serverChannel
            };
            _serverPort = _serverChannel.Init();
            _serverChannel.Start();
            _server.Start();
            Thread.Sleep(500); //be sure the server is started
        }
Example #16
0
        public static void Execute()
        {
            Server.ServerList InitalizeSettings = new Server.ServerList(); // used to retrieve server settings and test the user input.

            string[] ServerList = InitalizeSettings.GetServerList();    // gets a list of all of the created servers from the Servers/ directory.

            if (ServerList.Length > 0) // does a server exist?
            {
                // Remove @"Servers\" from the strings in the server list.
                // HACK: consider adding to this ServerList.GetServerList();
                for (int i = 0; i < ServerList.Length; i++)
                    ServerList[i] = ServerList[i].Replace(@"Servers\", "");

                // Display the server information and ask the user what server they would like to start.
                Console.WriteLine("What server would you like to start (Enter in the number or name)?");
                for (int i = 0; i < ServerList.Length; i++)
                {
                    int ServerIndex = i + 1;
                    Console.WriteLine(ServerIndex.ToString() + "). " + ServerList[i]);
                }
                Console.WriteLine("------"); // gives the user some space
                string ServerName =
                       Console.ReadLine();

                ServerName = ServerName.ToUpper();

                for (int i = 0; i < ServerList.Length; i++)
                {
                    int ServerCount = i + 1;
                    if (ServerName == ServerCount.ToString() || ServerName == ServerList[i].ToUpper())  // the user can enter the name or a number
                    {
                        ServerName = ServerList[i]; // if the user enters a number we need to make the input a string of the servers name.
                        ServerName = ServerName.Replace(@"Servers\", "");

                        Server.ServerInit.ServerSettings Settings = InitalizeSettings.GetServerByName(ServerName); //   load in user settings.
                        Server.Server srv = new Server.Server(Settings);                                          //    create a new object with those server settings

                        Console.WriteLine(Settings.server_name + " starting.");
                        srv.Start();     // start the server
                    }
                    else
                    {
                        Console.WriteLine("Invalid server name supplied.");
                    }
                }
            }
            else
            {
                Console.WriteLine("No Servers currently created.");
            }
        }
Example #17
0
        public static void Run(
            bool doRunServer = true,
            bool doRunClient = true)
        {
            var _cancellationTokenSource = new CancellationTokenSource();

            if (doRunServer)
            {
                var _serverTask = new Task(
                    () =>
                        {
                            var _listener = new Server.Server(
                                Program.Configuration.Port,
                                new Metric.Inv.v3.Server.IStatisticsProcessor[] { new Metric.Inv.v3.Server.ConsoleWriterStatisticsProcessor() });
                            _listener.Start();
                        },
                    _cancellationTokenSource.Token,
                    TaskCreationOptions.LongRunning);
                _serverTask.Start();
            }

            if (doRunClient)
            {
                var _clientTask = new Task(
                    () =>
                        {
                            while (true)
                            {
                                _cancellationTokenSource.Token.ThrowIfCancellationRequested();

                                var _worker = new Worker();
                                using (var _timer = Program.Metrics.StartTimer("Program.Work"))
                                {
                                    _worker.DoWork();
                                }
                            }
                        },
                    _cancellationTokenSource.Token,
                    TaskCreationOptions.LongRunning);
                _clientTask.Start();
            }

            var _lineRead = string.Empty;
            while (_lineRead != "x")
            {
                Console.WriteLine("Hit x to stop ");
                _lineRead = Console.ReadLine();
            }

            _cancellationTokenSource.Cancel();
        }
        public void Connection()
        {
            ResetState();

            var server = new Server.Server(7200, null, null, null);

            server.Start();

            var client = Client.Create(null, OnConnection, null);

            client.Connect(new IPEndPoint(IPAddress.Loopback, 7200));

            _waiter.Wait();
            Assert.True(_connected);
        }
        public async Task AsyncClient_ConnectToServerThenTerminateServer_ConnectionSucceeds()
        {
            var port = Network.GetTcpPort();
            var uriString = string.Format("http://localhost:{0}", port);
            var uri = new Uri(uriString);

            var applicationContext = Substitute.For<IApplicationContext>();
            var server = new Server.Server(uri);
            server.Start(applicationContext);

            using (var client = new Client.AsyncClient(uri))
            {
                var connected = await client.Connect(Client.Enums.TransportType.ServerSentEvents);
                Assert.IsTrue(connected);
                server.Dispose();
            }
        }
Example #20
0
        public static void Main(string[] args)
        {
            var consoleLogger = new ConsoleLogger();
            var serverHandler = new RequestHandler(new FilesManager(), new ConsoleLogger(), new ServerAuthenticationProvider());
            var server        = new Server.Server(serverHandler, consoleLogger);

            server.Start();
            Console.WriteLine("FILES SERVER v1.0 IS RUNNING..");
            Console.WriteLine($"SERVER LISTENING ON HOSTNAME-{ server.Hostname}, PORT-{server.Port}");

            Console.WriteLine("PRESS ANY KEY TO TERMINATE");
            Console.WriteLine();

            Console.ReadKey();
            Console.WriteLine("STOPPING THE SERVER..");
            server.Stop();
        }
Example #21
0
 static void Main(string[] args)
 {
     //string _val = "0,95";
     //float f = Convert.ToSingle(_val);
     //Console.WriteLine(f);
     Server.Server server = new Server.Server();
     try
     {
         server.Start();
         RemotingConfiguration.Configure("Matrix.Test.exe.config", false);
         Console.ReadKey();
     }
     finally
     {
         server.Stop();
     }
     Console.ReadKey();
 }
Example #22
0
        public void Init()
        {
            _serverChannel = new TcpServerChannel();

            _server = new Server.Server(new ServerConfig())
            {
                Channel = _serverChannel
            };
            _serverPort = _serverChannel.Init();
            _serverChannel.Start();
            _server.Start();

            Thread.Sleep(500); //be sure the server is started

            _client = NewClient();


            _client.RegisterTypeIfNeeded(typeof(CacheableTypeOk));
        }
Example #23
0
        static void Main(string[] args)
        {
            try
            {
                var server = new Server.Server();
                server.Start();

                Console.WriteLine("Server started, press any key to quit");
                Console.ReadKey();

                server.Stop();
            }
            catch (Exception e)
            {
                var logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
                logger.Fatal(e);
                Console.ReadKey();
            }
        }
Example #24
0
        private static void Main(string[] args)
        {
            ParseContextArgs(args);
            Title("Sandboxed Server");

            PrintLine("\n\nNOTE");
            PrintLine("This demo shows how-to secure a service using restricted app domain also known as \"sandboxing\".");
            PrintLine("You may change `FileIOPermission` parameter to allow querying server file system.");
            PrintLine($"See `{typeof(Program).FullName}.{nameof(Main)}()`");

            PrintLine("\n\nDISCLAIMER");
            PrintLine("Sandboxing using Code Access Security (CAS) is a nice way to demonstrait both,");
            PrintLine("validity of security concerns as well as countermeasures.");
            PrintLine("However, Microsoft advices against using CAS as security boundaries and");
            PrintLine("recommends the use of security boundaries provided by the operating system,");
            PrintLine("such as virtualization, containers, or user accounts, for running processes");
            PrintLine("with the minimum set of privileges.");

            WaitForEnterKey("\n\nHit enter to continue...");

            const string ip   = "127.0.0.1";
            const int    port = 1234;

            PrintHeader("\n\n1st demo: running server in default app domain (full-trust -> unsecured)");
            using (Server server = new Server(ip, port))
            {
                server.Start();
                new Client(ip, port).RunDemo();
            }

            PrintHeader("\n\n2nd demo: running server in restricted app domain (partial-trust)");
            AppDomain serverDomain = CreateServerAppDomain(
                new FileIOPermission(PermissionState.None), // <--- this prevents clients from enumerating the server's file system
                new SocketPermission(NetworkAccess.Accept, TransportType.Tcp, ip, port));

            using (Server server = Create <Server>(serverDomain, ip, port))
            {
                server.Start();
                new Client(ip, port).RunDemo();
            }

            WaitForEnterKey("\n\nHit enter to exit");
        }
        public void Data()
        {
            ResetState();

            var server = new Server.Server(7200, null, OnServerConnection, null);

            server.Start();

            var client = Client.Create(OnData, null, null);

            client.Connect(new IPEndPoint(IPAddress.Loopback, 7200));

            _waiter.Wait();
            Assert.True(_received);
            Assert.NotNull(_receivedData);
            for (int i = 0; i < _dataToSend.Length; i++)
            {
                Assert.Equal(_dataToSend[i], _receivedData[i]);
            }
        }
Example #26
0
 public void CreateServer()
 {
     server = new Server.Server(view.GetServerName());
     server.MessageReceived += ShowMessage;
     server.Start();
 }
Example #27
0
        public Connector(ClientConfig config)
        {
            if (Client == null)
            {
                if (config.Servers == null || config.Servers.Count == 0)
                {
                    var channel = new InProcessChannel();
                    Client = new CacheClient {
                        Channel = channel
                    };

                    _server = new Server.Server(new ServerConfig(), config.IsPersistent)
                    {
                        Channel = channel
                    };

                    _server.Start();
                }
                else if (config.Servers.Count == 1)
                {
                    var serverCfg = config.Servers[0];

                    var channel = new TcpClientChannel(new TcpClientPool(4, 1, serverCfg.Host, serverCfg.Port));

                    Client = new CacheClient {
                        Channel = channel
                    };
                }
                else // multiple servers
                {
                    var aggregator = new Aggregator();

                    var index = 0;
                    foreach (var serverConfig in config.Servers)
                    {
                        var channel =
                            new TcpClientChannel(new TcpClientPool(4, 1, serverConfig.Host, serverConfig.Port));

                        var client = new CacheClient
                        {
                            Channel     = channel,
                            ShardIndex  = index,
                            ShardsCount = config.Servers.Count
                        };
                        aggregator.CacheClients.Add(client);
                        index++;
                    }


                    Client = aggregator;
                }
            }


            // register types from client configuration
            foreach (var description in config.TypeDescriptions)
            {
                var type            = Type.GetType(description.Value.FullTypeName + ", " + description.Value.AssemblyName);
                var typeDescription = Client.RegisterTypeIfNeeded(type, description.Value);

                _typeDescriptions.Add(typeDescription.FullTypeName, typeDescription);
            }
        }
Example #28
0
 protected override void OnStart(string[] args)
 {
     _server = new Server.Server();
     _server.Start();
 }
Example #29
0
        /*Overload for an argument that already has been supplied*/
        public static void Execute(string ServerName)
        {
            Server.ServerList InitalizeSettings = new Server.ServerList();

            if (InitalizeSettings.ServerExists(ServerName))
            {
                Server.ServerInit.ServerSettings Settings = InitalizeSettings.GetServerByName(ServerName); //   load in user settings.
                Server.Server srv = new Server.Server(Settings);                                          //    create a new object with those server settings

                Console.WriteLine(Settings.server_name + " starting.");

                srv.Start();     // start the server
            }
            else
            {
                Console.WriteLine("Invalid server name supplied.");
            }
        }
Example #30
0
        public ServerConnection(ServerAlias serverAlias, bool autoStart)
        {
            if (serverAlias == null)
            {
                throw new ClientException(ClientException.Codes.ServerAliasRequired);
            }

            _serverAlias = serverAlias;
            InProcessAlias  inProcessAlias  = _serverAlias as InProcessAlias;
            ConnectionAlias connectionAlias = _serverAlias as ConnectionAlias;

            try
            {
                if (inProcessAlias != null)
                {
                                        #if !SILVERLIGHT
                    if (inProcessAlias.IsEmbedded)
                    {
                        ServerConfiguration configuration = InstanceManager.GetInstance(inProcessAlias.InstanceName);
                        _hostedServer = new Server.Server();
                        configuration.ApplyTo(_hostedServer);
                        if (autoStart)
                        {
                            _hostedServer.Start();
                        }
                    }
                    else
                    {
                        _serviceHost = new DataphorServiceHost();
                        _serviceHost.InstanceName = inProcessAlias.InstanceName;
                        if (autoStart)
                        {
                            _serviceHost.Start();
                        }
                    }
                                        #else
                    throw new NotSupportedException("In-process aliases are not supported in Silverlight");
                                        #endif
                }
                else
                {
                    _clientServer =
                        String.IsNullOrEmpty(connectionAlias.ClientConfigurationName)
                                                        ?
                        new ClientServer
                        (
                            connectionAlias.HostName,
                            connectionAlias.InstanceName,
                            connectionAlias.OverridePortNumber,
                            connectionAlias.SecurityMode,
                            connectionAlias.OverrideListenerPortNumber,
                            connectionAlias.ListenerSecurityMode
                        )
                                                        :
                        new ClientServer
                        (
                            connectionAlias.HostName,
                            connectionAlias.ClientConfigurationName
                        );

                    _localServer = new LocalServer(_clientServer, connectionAlias.ClientSideLoggingEnabled, TerminalServiceUtility.ClientName);
                }
            }
            catch
            {
                CleanUp();
                throw;
            }
        }