Пример #1
0
        static void Main4(string[] args)
        {
            var cli1 = new ShadowSocksClientStream();

            cli1.Plug(new Uri($"ss://*****:*****@127.0.0.1:8338"));
            cli1.Plug("127.0.0.1", 8338);
            cli1.Route("httpbin.org", 80);

            // var cli2 = new Socks4Client();
            // cli2.Plug("127.0.0.1", 1079);
            // cli2.Route("httpbin.org", 80);

            var cli = cli1;

            void read()
            {
                var buf = new byte[1024 * 1024];
                var c   = cli.Read(buf, 0, buf.Length);

                if (c > 0)
                {
                    var str = Encoding.UTF8.GetString(buf, 0, c);
                    Console.WriteLine(str);
                    Console.WriteLine("\r\n==========");
                    Task.Run(delegate
                    {
                        read();
                    });
                }
            }

            Task.Run(delegate
            {
                read();
            });



            cli.Write(Encoding.ASCII.GetBytes(@"GET / HTTP/1.1
Host: httpbin.org
Keep-Alive: true

"));


            Thread.Sleep(1000);
            Console.WriteLine("============");
            Console.ReadLine();

            cli.Write(Encoding.ASCII.GetBytes(@"GET / HTTP/1.1
Host: httpbin.org

"));

            Console.ReadLine();
        }
Пример #2
0
        public void Check_ss()
        {
            var port   = GetFreePort();
            var server = new ShadowSocksServer().Track(this);

            server.Run("ss://*****:*****@0.0.0.0:" + port);

            var cli = new ShadowSocksClientStream("chacha20", "123", "127.0.0.1", port, host, 80).Track(this);

            TestConnction(cli, host);
        }
Пример #3
0
        public void Check_ss_by_river_client()
        {
            // default null
            var cli = new ShadowSocksClientStream("chacha20", "123", "rt.xkip.ru", 18338, host, 80).Track(this);

            TestConnction(cli, host);

            // force dns
            cli = new ShadowSocksClientStream("chacha20", "123", "rt.xkip.ru", 18338, host, 80, proxyDns: true).Track(this);
            TestConnction(cli, host);

            // force ip
            cli = new ShadowSocksClientStream("chacha20", "123", "rt.xkip.ru", 18338, host, 80, proxyDns: false).Track(this);
            TestConnction(cli, host);
        }
Пример #4
0
        static void Main6()
        {
            /*
             * var ss = new ShadowSocksServer();
             * ss.Run("ss://*****:*****@0.0.0.0:18338");
             */

            string host = "www.google.com";
            // default null
            var cli = new ShadowSocksClientStream("chacha20", "123", "127.0.0.1", 18338, host, 80);

            TestConnction(cli, host);

            Console.ReadLine();
        }
Пример #5
0
        static void Main3(string[] args)
        {
            var cli = new ShadowSocksClientStream();

            cli.Plug(new Uri("ss://*****:*****@RHOP2:8338"));
            cli.Plug("RHOP2", 8338);
            cli.Route("10.7.1.1", 8338);

            var cli2 = new ShadowSocksClientStream();

            cli2.Plug(new Uri("ss://*****:*****@_:0"), cli);
            cli2.Route("10.7.0.1", 80);

            void read()
            {
                var buf = new byte[1024 * 1024];
                var c   = cli2.Read(buf, 0, buf.Length);

                if (c > 0)
                {
                    var str = Encoding.UTF8.GetString(buf, 0, c);
                    Console.WriteLine(str);
                    Console.WriteLine("\r\n==========<< " + c);
                    Task.Run(delegate
                    {
                        read();
                    });
                }
            }

            Task.Run(delegate
            {
                read();
            });

            cli2.Write(Encoding.ASCII.GetBytes(@"GET / HTTP/1.1
Host: httpbin.org
Keep-Alive: true

"));


            /*
             * Thread.Sleep(1000);
             * Console.WriteLine("============");
             */
            Console.ReadLine();

            cli2.Write(Encoding.ASCII.GetBytes(@"GET / HTTP/1.1
Host: httpbin.org

"));

            Console.ReadLine();

            cli2.Write(Encoding.ASCII.GetBytes("GET /\r\n\r\n"));

            /*
             * var buf = new byte[1024 * 1024];
             * var c = cli2.Read(buf, 0, buf.Length);
             * var str = Encoding.UTF8.GetString(buf, 0, c);
             * Console.WriteLine(str);
             * if (str.Contains("THIS IS SUPER PRIVATE SITE"))
             * {
             *      Console.WriteLine("THIS WORKS!!!");
             * }
             * Console.ReadLine();
             */
        }