Example #1
0
        private async void StartClient(IPEndPoint point)
        {
            await Task.Delay(3000);

            SocketConnectionFactory client = new SocketConnectionFactory(new SocketTransportOptions());
            var connection = client.ConnectAsync(point).Result;

            Console.WriteLine("Client: Connected!");
            var buffer = Encoding.UTF8.GetBytes("test");

            Task.Run(async() =>
            {
                var result = await connection.Transport.Input.ReadAsync();
                Result     = Encoding.UTF8.GetString(result.Buffer.FirstSpan);
            });
            await connection.Transport.Output.WriteAsync(buffer);

            Console.WriteLine("Client: Data has been send!");
            while (Result == default)
            {
                Thread.Sleep(1000);
                Console.WriteLine("Client: Loop!");
            }
            Assert.Contains("test", Result);
            await client.DisposeAsync();
        }
Example #2
0
        public void Attack()
        {
            Task.Run(() =>
            {
                Thread.Sleep(300);
                using (ISocketClientConnection connection = SocketConnectionFactory.GetConnection())
                {
                    for (int i = 0; i < TotalFired; i++)
                    {
                        try
                        {
                            connection.SendRequest("CustomerController", "AddCustomer", new
                            {
                                customer = $"Customer n {i + 1} of attacker #{AttackerId}"
                            });

                            if (connection.GetResult().Status == 600)
                            {
                                RequestsSuccess += 1;
                            }
                            else
                            {
                                RequestFails += 1;
                            }
                        }
                        catch
                        {
                            RequestFails += 1;
                        }
                    }

                    manager.EndBatch(TotalFired, RequestsSuccess, RequestFails);
                }
            });
        }
Example #3
0
        static async Task Main(string[] args)
        {
            PreparedHeaderSet preparedHeaders =
                new PreparedHeaderSetBuilder()
                .AddHeader("User-Agent", "NetworkToolkit")
                .AddHeader("Accept", "text/html")
                .Build();

            await using ConnectionFactory connectionFactory = new SocketConnectionFactory();
            await using Connection connection = await connectionFactory.ConnectAsync(new DnsEndPoint ("microsoft.com", 80));

            await using HttpConnection httpConnection = new Http1Connection(connection, HttpPrimitiveVersion.Version11);

            int requestCounter = 0;

            await SingleRequest();
            await SingleRequest();

            async Task SingleRequest()
            {
                await using ValueHttpRequest request = (await httpConnection.CreateNewRequestAsync(HttpPrimitiveVersion.Version11, HttpVersionPolicy.RequestVersionExact)).Value;

                request.ConfigureRequest(contentLength: 0, hasTrailingHeaders: false);
                request.WriteRequest(HttpMethod.Get, new Uri("http://microsoft.com"));
                request.WriteHeader(preparedHeaders);
                request.WriteHeader("X-Example-RequestNo", requestCounter++.ToString());
                await request.CompleteRequestAsync();

                await request.DrainAsync();
            }
        }
Example #4
0
        static void Main()
        {
            SocketConnectionFactory.SetDefaultSettings(new SocketClientSettings
                                                       (
                                                           "localhost",
                                                           2500,
                                                           Encoding.UTF8
                                                       ));

            using (ISocketClientConnection connection = SocketConnectionFactory.GetConnection())
            {
                connection.SendRequest("controller", "action", new
                {
                    nome  = "XPTO",
                    idade = 39,
                    outroParametroQualquer = Guid.NewGuid()
                });

                var response = connection.ReadResponse();
            }



            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
Example #5
0
        static async Task Main(string[] args)
        {
            await using ConnectionFactory connectionFactory = new SocketConnectionFactory();
            await using Connection connection = await connectionFactory.ConnectAsync(new DnsEndPoint ("microsoft.com", 80));

            await using HttpConnection httpConnection = new Http1Connection(connection);

            await using (ValueHttpRequest request = (await httpConnection.CreateNewRequestAsync(HttpPrimitiveVersion.Version11, HttpVersionPolicy.RequestVersionExact)).Value)
            {
                request.ConfigureRequest(contentLength: 0, hasTrailingHeaders: false);
                request.WriteRequest(HttpMethod.Get, new Uri("http://microsoft.com"));
                request.WriteHeader("Accept", "text/html");
                await request.CompleteRequestAsync();

                await request.ReadToFinalResponseAsync();

                Console.WriteLine($"Final response code: {request.StatusCode}");

                if (await request.ReadToHeadersAsync())
                {
                    await request.ReadHeadersAsync(new PrintingHeadersSink(), state : null);
                }
                else
                {
                    Console.WriteLine("No headers received.");
                }

                if (await request.ReadToContentAsync())
                {
                    long totalLen = 0;

                    var buffer = new byte[4096];
                    int readLen;

                    do
                    {
                        while ((readLen = await request.ReadContentAsync(buffer)) != 0)
                        {
                            totalLen += readLen;
                        }
                    }while (await request.ReadToNextContentAsync());

                    Console.WriteLine($"Received {totalLen} byte response.");
                }
                else
                {
                    Console.WriteLine("No content received.");
                }

                if (await request.ReadToTrailingHeadersAsync())
                {
                    await request.ReadHeadersAsync(new PrintingHeadersSink(), state : null);
                }
                else
                {
                    Console.WriteLine("No trailing headers received.");
                }
            }
        }
        private ISocketClientConnection GetClient()
        {
            IServiceManager manager = ServiceManager.GetInstance();

            logging = manager.GetService <ILoggingService>();

            ICoreServerService      coreServer = manager.GetService <ICoreServerService>();
            ServerConfiguration     config     = coreServer.GetConfiguration();
            ISocketClientConnection connection = SocketConnectionFactory
                                                 .GetConnection(new SocketClientSettings("localhost", config.Port, config.ServerEncoding));

            return(connection);
        }
Example #7
0
        public PingPongTest()
        {
            var endpoit = new IPEndPoint(IPAddress.Parse("123.57.78.153"), 9379);
            SocketConnectionFactory client = new SocketConnectionFactory(new SocketTransportOptions());

            connection = client.ConnectAsync(endpoit).Result;
            connection.Transport.Output.WriteAsync(Encoding.UTF8.GetBytes("AUTH 0f649985e1ae10a\r\n"));
            var result = connection.Transport.Output.WriteAsync(Encoding.UTF8.GetBytes("SELECT 15\r\n")).Result;

            Thread.Sleep(3000);
            var readResult = connection.Transport.Input.ReadAsync().Result;
            var data       = Encoding.UTF8.GetString(readResult.Buffer.FirstSpan);

            Console.WriteLine(data);
            connection.Transport.Input.AdvanceTo(readResult.Buffer.End);
        }
Example #8
0
 private ISocketClientConnection BuildClient(SubServer server)
 {
     try
     {
         return(SocketConnectionFactory.GetConnection(new SocketClientSettings(
                                                          server: server.Address,
                                                          port: server.Port,
                                                          encoding: server.Encoding,
                                                          maxAttempts: server.MaxConnectionAttempts
                                                          )));
     }
     catch (Exception ex)
     {
         Logger.WriteLog($"Fail to connect server {server.Address}:{server.Port} : {ex.Message}", ServerLogType.ERROR);
         return(null);
     }
 }
Example #9
0
        static void Main(string[] args)
        {
            try
            {
                SocketConnectionFactory.SetDefaultSettings(new SocketClientSettings(
                                                               "localhost", 7001,
                                                               Encoding.UTF8, 3
                                                               ));

                using (ISocketClientConnection conn = SocketConnectionFactory.GetConnection())
                {
                }
            }
            catch (Exception ex)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine(ex.Message);
            }
        }
Example #10
0
        public PingPongTest()
        {
            using (StreamReader stream = new StreamReader("Redis.rsf"))
            {
                ip   = stream.ReadLine();
                port = int.Parse(stream.ReadLine());
                pwd  = stream.ReadLine();
            }
            var endpoit = new IPEndPoint(IPAddress.Parse("127"), 12);
            SocketConnectionFactory client = new SocketConnectionFactory(new SocketTransportOptions());

            connection = client.ConnectAsync(endpoit).Result;
            connection.Transport.Output.WriteAsync(Encoding.UTF8.GetBytes("AUTH \r\n"));
            var result = connection.Transport.Output.WriteAsync(Encoding.UTF8.GetBytes("SELECT 15\r\n")).Result;

            Thread.Sleep(3000);
            var readResult = connection.Transport.Input.ReadAsync().Result;
            var data       = Encoding.UTF8.GetString(readResult.Buffer.FirstSpan);

            Console.WriteLine(data);
            connection.Transport.Input.AdvanceTo(readResult.Buffer.End);
        }
        static async Task Main(string[] args)
        {
            // Manual wire up of the client
            var services = new ServiceCollection().AddLogging(builder =>
            {
                builder.SetMinimumLevel(LogLevel.Debug);
                builder.AddConsole();
            });

            services.AddScoped <MessageHandler <HandshakeMessage>, HandshakeMessageHandler>();
            services.Add <MessageMetadataParser, MessageMetadata>();
            services.AddSingleton <ClientConnectionHandler>();
            services.AddSingleton(sp =>
            {
                var builder = new ServerFramingBuilder(sp);
                builder.Mappings.Add((HandshakeMessage.Id, typeof(HandshakeMessage)));
                builder.MessageWriter = new MessageWriter(builder.Parser);
                builder.MessageReader = new MessageReader();
                builder.UseMessageEncoder();

                return(builder.Build());
            });

            var serviceProvider   = services.BuildServiceProvider();
            var connectionHandler = serviceProvider
                                    .GetRequiredService <ClientConnectionHandler>();
            var clientFactory = new SocketConnectionFactory();

            Console.WriteLine("Press any key to start connection.");
            Console.ReadKey();

            await using var connection = await clientFactory.ConnectAsync(
                            new IPEndPoint (IPAddress.Loopback, 5000));

            await connectionHandler.OnConnectedAsync(connection).ConfigureAwait(false);
        }
 public SocketListener(SocketConnectionFactory connectionFactory, Socket listener)
 {
     _connectionFactory = connectionFactory;
     _listener          = listener;
 }